标签: mysql multiplication
我有一个值为= 2.05的浮点数,当我执行* 1000时,结果为 2049.999952316284 为什么结果不是2050.0?
由于
答案 0 :(得分:1)
大概是因为该字段不是存储为2.05而是存储为2.04999。如果增加字段的分辨率,即将其存储为2.0500,会发生什么?
此问题是由于计算机无法准确存储一些实数。
顺便提一下,如果该值应该是货币值,则将其存储为数字(12,2),然后不会出现任何浮点错误。
答案 1 :(得分:1)
阅读这篇文章:
Floating Point Bugs in Mysql