首页 > 解决方案 > 在 DECIMAL 列上使用 SUM 函数时不准确

问题描述

在 DECIMAL (12.5) 列上使用 MySQL SUM 函数时,由于不准确而生成的值存在错误,其行为类似于 FLOAT 类型的列总和。

我在 MySQL 5.6 和 5.7 上进行了测试,在这两个版本上我都遇到了同样的问题。

金额列的类型为 DECIMAL(12,5)。

SELECT SUM(IF(o.operator='-', -(s.amount), s.amount)) as total
FROM stock s
INNER JOIN operators o ON s.operator_id = o.id;

返回的结果是 701.74999,但应该是 701.75000。

标签: mysqlmysql-workbench

解决方案


推荐阅读