MySQL保存浮点错误

时间:2017-11-23 14:56:04

标签: mysql double decimal rounding

尝试将此数字保存到任何浮点或双字段中 的 588966.68

SQL查询将执行其操作并保存日期并返回成功。现在检索刚刚保存的相同值,它会显示 588966.69

你保存了 .68 ,在阅读时你得到 .69 !!?!

这怎么可能?我的字段类型是FLOAT(10,2)也尝试使用带有DECIMAL(12,2)和DECIMAL(12,3)的DOUBLE(12,2),尽管我只需要明确的2位小数。

我注意到这个数字超过了120K

2 个答案:

答案 0 :(得分:0)

抓取它适用于 DECIMAL 字段类型!

答案 1 :(得分:0)

FLOAT有24个的精度。数字最多 128K需要17位来表示整数部分,小数部分只留下7位。

在128K和256K之间:整数为18位;分数只有6位。 6位为您提供64个不同的值 - 但2位小数需要100个不同的值。精度不够。