尝试将此数字保存到任何浮点或双精度字段中 588966.68
SQL查询将完成它的任务并保存日期并返回成功。现在检索与刚才保存的值相同的值,它将显示 588966.69
您保存了 .68 一读你就会明白 .69 !!?!
这怎么可能?我的字段类型是FLOAT(10,2),也尝试了带小数(12,2)和小数(12,3)的DOUBLE(12,2),尽管我只需要显式的2个小数。
我注意到这种情况发生在超过12万人的情况下
FLOAT 有24个 位 精确性。数字 高达 128K需要17位来表示整数部分,只剩下7位用于小数部分。
FLOAT
在128K和256K之间:整数为18位;分数只有6位。6位给出64个不同的值——但2位小数需要100个不同的值。精度不够。
它的工作原理是 十进制的 字段类型!