2016-09-27 47 views
1

我使用的MySQL服务器是5.5.41。我也想说明我没有设计这个数据库。MySQL TRUNCATE的准确性是由一个

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

enter image description here

如果更改表结构的选择是有限的,是有没有解决办法修复这个错误,并返回正确的号码?

+0

请尝试使用图像来表示纯文本数据,而不是将其粘贴为纯文本格式。图像难以处理,不能复制粘贴到答案中,并且对屏幕阅读器的人员不利。 – tadman

+2

@tadman你的意思是*不要 – Martin

+0

对,不要。那个。 – tadman

回答

7

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

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