我想获得数据总和,但结果却是错误
做总和时的结果
从示例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
我不明白这背后的原因是什么。
答案 0 :(得分:1)
这是IEEE-754舍入错误的一个例子。请注意,这些数字都非常接近于零,但是,如果关闭,请参阅指数。
将您的SUM
换入ROUND()
:
SELECT ROUND( SUM( LC_Amount ), 10 )
......应该这样做。
答案 1 :(得分:0)
这是因为float不是 true 精确数字类型。
尝试使用DECIMAL(10,2)
类型以避免出现轮次错误。
网上有很多关于浮点类型的信息。