MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
这漂浮
和双倍的
类型表示近似数值数据值。MySQL使用四个字节进行单精度值和8个字节进行双精度值。
为了漂浮
,SQL标准允许在关键字之后的比特中的精度(但不是指数范围)的可选规范漂浮
在括号内;;那是,漂浮(
。MySQL还支持此可选精度规范,但精度值P.
)漂浮(
仅用于确定存储大小。从0到23的精度导致4字节的单精度P.
)漂浮
柱子。从24到53的精确度导致8字节的双精度双倍的
柱子。
MySQL允许非标准语法:漂浮(
或者m
那D.
)真实的(
或者m
那D.
)双精度(
。这里,m
那D.
)(
意思比价值可以用尽m
那D.
)m
总共数字,其中D.
数字可能在小数点之后。例如,定义为浮子(7,4)
显示为-999.9999.
。MySQL在存储值时执行舍入,因此如果您插入999.00009
进入A.浮子(7,4)
列,近似结果是999.0001.
。
截至MySQL 8.0.17,非标准漂浮(
和m
那D.
)双倍的(
弃用语法已不推荐使用,您应该期望支持在未来版本的MySQL中删除。m
那D.
)
因为浮点值是近似的,并且未作为精确值存储,所以尝试将它们视为精确的比较可能导致问题。它们也受到平台或实现依赖性的影响。有关更多信息,请参阅第b.3.4.8节“浮点值的问题”
为了最大的可移植性,需要存储近似数字数据值的代码应该使用漂浮
或者双精度
没有准确或数字数量的规范。