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