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

ARU*_*P.S 40 mysql floating-point

我在MySQL中用一个类型为float(2,2)的coloumn创建了一个表,并将值10插入到同一个表中,但我发现存储的值是0.99.

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

Kon*_*rak 74

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.


小智 17

MySQL允许非标准语法:FLOAT(M,D)或REAL(M,D)或DOUBLE PRECISION(M,D).这里,"(M,D)"表示总共可以存储最多M位的值,其中D位可以在小数点之后.

  • @Francis:欢迎来到stackoverflow!你的答案是正确的,如果你找到"回答实际问题","解释一般原则","解释在文档中找到它的位置"和"链接到文档"之间的正确组合,你可能会获得更多赞成你的答案. (3认同)

小智 5

在MySql中,有像FLOAT(M,D)这样的数据类型。其中D是小数位数,M是总位数(包括小数)。FLOAT的小数精度可以达到24位,M的范围是1到65. 如果语法是FLOAT(2,2),则只有两位小数,没有实数位。所以要加10,可以像FLOAT(5,2)一样使用。