我有一个具有高精度值的表,存储为Float
。当我在表中查询该值时,它返回舍入值,四舍五入到第一位。但是当我运行以下查询时,我得到了我存储的值,
SELECT MY_FLOAT_COL*1 FROM MY_TABLE;
Mysql里面发生了什么?
答案 0 :(得分:1)
如果您想存储完全值,则可以使用DECIMAL
数据类型。
通过FLOAT
手册:
FLOAT
和DOUBLE
类型代表近似数字数据值。 MySQL使用四个字节作为单精度值
这里要提到的是 近似 。
您可以在此处阅读有关花车的更多信息:http://dev.mysql.com/doc/internals/en/floating-point-types.html