【发布时间】:2018-06-05 17:12:07
【问题描述】:
有人能告诉我为什么在 FLOAT 列上执行 MySQL SUM() 函数会产生奇怪的结果吗?
例子:
CREATE TABLE payments (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
amount FLOAT DEFAULT NULL,
PRIMARY KEY(id)
);
INSERT INTO payments (amount) VALUES (1.3),(1.43),(1.65),(1.71);
执行 SUM() 时,期望 6.09,MySQL 返回该浮点数:
mysql> SELECT SUM(amount) FROM payments WHERE 1;
+--------------------+
| SUM(amount) |
+--------------------+
| 6.0899999141693115 |
+--------------------+
1 row in set (0.00 sec)
这对于一个可能会开发的人来说是相当可怕的,比如说……会计软件! :/
版本:Mysql 5.5.60
【问题讨论】:
标签: mysql precision accounting