我使用的MySQL服务器是5.5.41。我还想注意,我没有设计这个数据库。
我遇到的问题是,当使用MySQL的TRUCATE函数时,我似乎得到了一个错误。因为它不准确。请参阅随附的屏幕截图我的意思。
如果更改表结构的选项有限,是否有办法修复此错误并返回正确的数字?
答案 0 :(得分:7)
浮点数不准确。 70.85
的实际值可能类似70.84999999
,但它会显示四舍五入到最近的2位小数。 TRUNCATE
取实际值,只丢弃超出您请求数的所有小数位,因此它总是向下舍入,而不是最接近的值,因此它变为70.84
。
如果您不想失去这样的准确性,请使用DECIMAL
数据类型而不是FLOAT
。您也可以使用ROUND(reserve_amount, 2)
代替TRUNCATE(reserve_amount, 2)
。