• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • 浮点类型(近似值)(FLOAT,DOUBLE)

    FLOATDOUBLE类型代表近似数字数据值。MySQL将四个字节用于单精度值,并将八个字节用于双精度值。

    对于FLOAT,SQL标准允许对FLOAT括号中的关键字后面的位以精度(而不是指数的范围)进行可选的规范;;即。MySQL也支持此可选的精度规范,但是in的精度值仅用于确定存储大小。从0到23的精度导致4字节单精度列。从24到53的精度将导致8字节的双精度列。FLOAT(p)FLOAT(p)FLOATDOUBLE

    MySQL允许使用非标准语法:或或。此处,平均值最多可以存储最多位数,其中位数可以在小数点后。例如,定义为的列在显示时将看起来像。MySQL在存储值时执行四舍五入,因此,如果将其插入到列中,则近似结果为。FLOAT(M,D)REAL(M,D)DOUBLE PRECISION(M,D)(M,D)MDFLOAT(7,4)-999.9999999.00009FLOAT(7,4)999.0001

    从MySQL 8.0.17开始,不建议使用非标准和语法,并且在将来的MySQL版本中将删除对它的支持。FLOAT(M,D)DOUBLE(M,D)

    由于浮点值是近似值而不是作为精确值存储的,因此在比较中尝试将它们视为精确值可能会导致问题。它们还受平台或实现依赖性的约束。有关更多信息,请参见第B.4.4.8节“浮点值的问题”

    为了获得最大的可移植性,需要存储近似数值数据值的代码应使用FLOATDOUBLE PRECISION不指定精度或位数。