TSQL Sum给出了错误的结果

时间:2016-01-18 06:21:38

标签: sql tsql

我想获得数据总和,但结果却是错误

示例1 enter image description here

示例2 enter image description here

做总和时的结果

enter image description here

从示例1中可以看出 - 其中p_key为11020145101617761,LC_Amount为8.4,168,-176.4,其总和为0

类似于例2 - 其中p_key是1102014510615767,LC_amount是 -571067.53,543873.84,27193.69这个的总和也是0

但是在我用p_key分组的结果中,我没有得到0

我不明白这背后的原因是什么。

2 个答案:

答案 0 :(得分:1)

这是IEEE-754舍入错误的一个例子。请注意,这些数字都非常接近于零,但是,如果关闭,请参阅指数。

将您的SUM换入ROUND()

SELECT ROUND( SUM( LC_Amount ), 10 ) 

......应该这样做。

答案 1 :(得分:0)

这是因为float不是 true 精确数字类型。 尝试使用DECIMAL(10,2)类型以避免出现轮次错误。

网上有很多关于浮点类型的信息。