mysql中float(2,2)和float()之间的区别

时间:2011-11-02 11:57:43

标签: mysql floating-point

我在MySQL中创建了一个表,其类型为float(2,2),并将值10插入其中,但我发现存储的值为0.99。

这背后的原因是什么?如果我们在MySQL中使用float(m,n)类型的列,其中'm'和'n'是整数,那么在此列中存储值时应该注意什么?

4 个答案:

答案 0 :(得分:71)

float(2,2)表示“使用两位数,其中两位在小数点后使用”。

因此,您可以从-0.99到0.99。你不能在这个列中插入10,你需要在逗号之前至少两位数(所以float(4,2)或float(2,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。

答案 1 :(得分:14)

MySQL允许非标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D)。这里,“(M,D)”表示可以存储最多 M位数的值,其中 D位可能位于小数点后

答案 2 :(得分:3)

浮动(M,D)这里记住M = max。没有。允许的数字(范围1到65),D =否。小数点后的数字。 所以你可以改变浮动(5,2)。所以float(2,2)不满足你输入no.10的需要

答案 3 :(得分:1)

在MySql中,有FLOAT(M,D)之类的数据类型。其中D是 小数位数,M是总位数(包括 浮点数的小数精度可以达到24位,M范围为1到65。 如果语法为FLOAT(2,2),则小数点后两位,实数无位。因此,您想加10就可以像FLOAT(5,2)一样使用。