实数类型

实数是带有小数部分的数字。然而,它们不仅适用于带小数的数字,也可以使用 DECIMAL 存储比 BIGINT 还大的整数。MySQL 既支持精确类型,也支持不精确类型。

类型长度(比特)

FLOAT

32

DOUBLE

64

DECIMAL

/

浮点类型通常使用比 DECIMAL 更少的空间来存储相同范围的值。

  • FLOAT 列使用 4 字节的存储空间。

  • DOUBLE 占用 8 字节,比 FLOAT 具有更高的精度和更大的值范围。

与整数类型一样,你只能选择存储类型,MySQL 会使用 DOUBLE 进行浮点类型的内部计算。

由于额外的空间需求和计算成本,应该尽量只在对小数进行精确计算时才使用 DECIMAL——例如,存储财务数据。但在一些大容量的场景,可以考虑使用 BIGINT 代替 DECIMAL,将需要存储的货币单位根据小数的位数乘以相应的倍数即可,这样可以同时避免浮点存储计算不精确和 DECIMAL 精确计算代价高的问题。

最后更新于