在MySQL Double(9,8)列中插入值10,最后以9.99999999结尾

Pet*_*ell 3 php mysql

我有一个有双(9,8)列的表.当我尝试在该列中从PHP插入值10时,我最终得到9.99999999.

我可以理解舍入错误,但这首先是一个整数.任何帮助赞赏:)

ppe*_*rka 10

Double(9,8) 手段:

  • 总共9位数
  • 其中8位是小数

这是一个数字的格式:

0.00000000
Run Code Online (Sandbox Code Playgroud)

所以输入10最接近的是9.9999999

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.