MySQL TRUNCATE的准确度是一个

时间:2016-09-27 17:12:21

标签: mysql

我使用的MySQL服务器是5.5.41。我还想注意,我没有设计这个数据库。

我遇到的问题是,当使用MySQL的TRUCATE函数时,我似乎得到了一个错误。因为它不准确。请参阅随附的屏幕截图我的意思。

enter image description here

如果更改表结构的选项有限,是否有办法修复此错误并返回正确的数字?

1 个答案:

答案 0 :(得分:7)

浮点数不准确。 70.85的实际值可能类似70.84999999,但它会显示四舍五入到最近的2位小数。 TRUNCATE取实际值,只丢弃超出您请求数的所有小数位,因此它总是向下舍入,而不是最接近的值,因此它变为70.84

如果您不想失去这样的准确性,请使用DECIMAL数据类型而不是FLOAT。您也可以使用ROUND(reserve_amount, 2)代替TRUNCATE(reserve_amount, 2)