gpt4 book ai didi

mysql - SUM MySQL 中出现不正确的小数

转载 作者:IT王子 更新时间:2023-10-29 00:28:42 25 4
gpt4 key购买 nike

我有以下 SQL 查询。

SELECT SUM(final_insurance_total) as total
FROM `leads`
GROUP BY leads.status

我在 lead 表中有一行数据,final_insurance_total 的值为 458796。final_insurance_total 的数据类型是 float

出于某种原因,MySQL 将单行求和为“458796.375”。

如果我将查询更改为

SELECT (final_insurance_total) as total
FROM `leads`
GROUP BY leads.status

返回正确的值。这到底是怎么回事?

最佳答案

MySQL(以及其他数据库和编程语言运行时)中的 FLOATDOUBLE 类型以特殊方式表示,这导致存储的值是近似值,而不是精确值。见 MySQL docs ,以及 general information on floating-point arithmetics .

为了存储和操作精确值,请使用 DECIMAL 类型(参见 https://dev.mysql.com/doc/refman/5.1/en/precision-math-decimal-characteristics.html)。

编辑:我已经运行了一些测试,虽然浮点精度错误很常见,但这个特定的错误看起来特定于 SUM() 的实现在 MySQL 中。换句话说,这是一个已经存在很长时间的错误。在任何情况下,您都应该使用 DECIMAL 作为您的字段类型。

关于mysql - SUM MySQL 中出现不正确的小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30445664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com