使用MySQL中的sum()函数舍入错误

时间:2015-08-18 15:08:29

标签: mysql

我有一个SQL问题我在这里遇到的问题: http://sqlfiddle.com/#!9/73964/1/0

我的查询如下: 选择round(sum(qty * amount),2)作为newtable的总数;

我期待零,但我得到-0.01 我在这里做错了什么?

3 个答案:

答案 0 :(得分:1)

计算结果为-0.005

如果你将逗号后面的数字四舍五入(你正在做什么),那就是-0.01这是正确的。

答案 1 :(得分:0)

    325   *    1    ->  325 
      0.5 *    9.63 ->    4.815
      1   * -129.24 -> -129.24
      1   * -200.58 -> -200.58
+   ---------------------------
                         -0.005

round(-0.005) -> -0.01

答案 2 :(得分:0)

原来我应该将乘法四舍五入,而不是总和。 谢谢大家指出我无法理解:)

正确查询我所期待的是

select sum(round(qty*amount,2)) as total from newtable;