mysql 浮点数返回错误值

Wrong value returned from mysql float

我有一个 table 具有高精度值,存储为 Float。当我查询 table 该值时,它 returns 舍入值,四舍五入到第一个数字。但是当我 运行 下面的查询时,我得到了我存储的值,

SELECT MY_FLOAT_COL*1 FROM MY_TABLE;

里面发生了什么Mysql?

如果您想存储 精确的 值,您将使用 DECIMAL 数据类型。

根据 FLOAT 的手册:

The FLOAT and DOUBLE types represent approximate numeric data values. MySQL uses four bytes for single-precision values

这里要提的是近似

您可以在此处阅读更多关于浮动的信息:http://dev.mysql.com/doc/internals/en/floating-point-types.html