Mysql FLOAT类型字段添加到表中时添加特定值

时间:2019-07-18 06:10:33

标签: mysql

我正在使用Mysql v5.7.25,如果我尝试在FLOAT类型字段中插入一个值,则会添加“ 5”。这意味着,如果我在提交后将“ 1840555”添加到表中,它将更改为“ 1840560”。

1 个答案:

答案 0 :(得分:0)

MySQL在存储值时执行四舍五入。

根据MySql文档:

  

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。

在您的情况下: 您声明变量的数据类型为FLOAT且未指定M和D的值,则

1840554将其转换为1840550(向下舍入)加上1840555将其转换为1840560(向上舍入)

(如果最后一位小于5,则向下取整,否则向上取整)

您需要使用FLOAT(7,0)才能根据需要更改值M和D