错误的sql SUM()正数与负数

时间:2014-05-14 12:43:57

标签: mysql sql sum

我的表列有正负浮点数。当我查询得到所有数字的SUM()时,它返回错误的结果。

表:

+----+---------+--------+
| id | user_id | points |
+----+---------+--------+
|  1 |      38 | 30.5   |
|  2 |      38 | -5.3   |
+----+---------+--------+

查询:

SELECT SUM(points) FROM table WHERE user_id=38

结果:

25.199999809265137

为什么会这样?为什么我没有得到25.2

2 个答案:

答案 0 :(得分:3)

正如Problems with Floating-Point Values所述:

  

浮点数有时会引起混淆,因为它们是近似值而不是存储为精确值。 SQL语句中写入的浮点值可能与内部表示的值不同。

答案 1 :(得分:1)

我猜你的积分字段是浮点数,这不是确切的。

"近似值"根据{{​​3}}。

使用小数或数字类型进行精确计算,小数点后面有已知数量的数字。

或者在1位数字上查询查询结果,因为您的来源也是小数点后面的1位数。但要知道,它不可能是圆润而精确的合作(更好:不是100%准确且可预测)