【发布时间】:2015-05-11 14:17:32
【问题描述】:
四个简单的 SELECT 语句:
SELECT 33883.50 * -1;
SELECT 33883.50 / -1.05;
SELECT 33883.50 * -1 / 1.05;
SELECT (33883.50 * -1) / 1.05;
但结果并不如我所愿:
-33883.50
-32270.000000
-32269.96773000
-32270.000000
第三个结果似乎值得怀疑。我可以看到发生了什么,首先 SQL Server 对此进行评估:
SELECT -1 / 1.05;
得到答案:
-0.952380
然后它接受该答案并使用它来执行此计算:
SELECT 33883.50 * -0.952380;
要得到(错误的)答案:
-32269.96773000
但是为什么要这样做呢?
【问题讨论】:
标签: sql sql-server sql-server-2014