我将“35444650.00”作为浮点数输入到我的 MySQL 中,它不断重新格式化为 35444648.00,欢迎任何帮助...
问问题
3636 次
5 回答
8
浮点数只有一定的精度,您可能超出了浮点数据类型的精度。尝试改用 DOUBLE。
于 2009-11-24T14:23:51.697 回答
4
浮点数具有 6 位精度。使用双精度来获得 15 或切换到数字(x,y)。如果您有兴趣,请查看MySQL针对不同数据类型的存储要求。
于 2009-11-24T14:27:08.287 回答
4
MySQL 手册声称,FLOAT, REAL, and DOUBLE PRECISION
字段将值存储为近似值,INTEGER, SMALLINT, DECIMAL, and NUMERIC
字段将值存储为精确值。
我认为克服这个精度问题的最好办法是使用小数。
参考:http ://dev.mysql.com/doc/refman/5.1/en/numeric-types.html
于 2011-11-04T11:33:34.467 回答
2
一个更高精度的浮点替代方案是DOUBLE
. 但是看这个例子,我认为DECIMAL
如果零后所需的位数很小(大约 2-4)并且小数点前的位数也很小(大约 10-12),那么数据类型可能会派上用场。
于 2009-11-24T14:29:02.090 回答
0
您正在超越可能的精度水平。您需要以更高的精度定义浮点数,即“FLOAT(10,5)”表示浮点数总共可以有 10 位数字,小数点后最多为 5 位。
于 2009-11-24T14:27:07.680 回答