如何使我的MySQL表保存最多20位数的浮点数?

时间:2017-06-11 02:17:32

标签: php mysql phpmyadmin

这是我的表格: enter image description here

让我们假设我希望帐户余额为:

0.4729472846758294728572

所以我试着将它设置为它,但它一直在切断它并且向上舍入。 enter image description here

如何阻止此行为?

2 个答案:

答案 0 :(得分:2)

FLOAT值是近似值:

  

FLOATDOUBLE类型代表近似数值数据值。

如果您需要任意精确度,可以使用DECIMAL列,例如DECIMAL(25, 20)。在这种情况下,您将获得小数点前5位数和后10位数。

答案 1 :(得分:0)

MySQL允许非标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。这里,(M,D)表示可以存储的值总共最多为M位,其中D位可以在小数点之后。例如,定义为FLOAT(7,4)的列在显示时将显示为-999.9999。 MySQL在存储值时执行舍入,因此如果将999.00009插入FLOAT(7,4)列,则近似结果为999.0001。 见这里:https://dev.mysql.com/doc/refman/5.7/en/floating-point-types.htmlhttp://code.rohitink.com/2013/06/12/mysql-integer-float-decimal-data-types-differences/