浮点类型用于存储近似小数,适合科学和工程计算。FLOAT占4字节,精度约7位;DOUBLE占8字节,精度15-16位。两者遵循IEEE 754标准,支持INF和NaN。不建议用于精确计算如金额,应使用DECIMAL。

MySQL中的浮点类型用于存储带有小数部分的数值,适合表示近似数值。这类数据类型主要用于科学计算、工程计算等对精度要求不是极端严格的场景。
FLOAT 类型
FLOAT 是单精度浮点数类型,占用 4 字节(32位)存储空间,可表示大约 7 位有效数字。适用于对精度要求不高的小数数据。
定义方式:
FLOAT(M,D) —— M 表示总位数,D 表示小数位数。例如 FLOAT(7,2) 最多存储 5 位整数和 2 位小数。
注意:M 和 D 是可选的,现代 MySQL 版本更推荐直接使用 FLOAT,而不限定显示宽度。
DOUBLE 类型
DOUBLE 是双精度浮点数类型,占用 8 字节(64位),可提供约 15-16 位有效数字,精度高于 FLOAT,适合需要更高精度的计算。
定义方式类似:
DOUBLE(M,D) —— 同样支持指定总位数和小数位数,但建议仅用 DOUBLE 来使用默认精度。
注意事项与使用建议
浮点类型是近似值存储,不适合用于需要精确计算的场景,比如金额。
- 由于二进制浮点数无法精确表示所有十进制小数(如 0.1),可能导致计算误差。
- 如果需要精确小数运算,应使用 DECIMAL(M,D) 类型。
- FLOAT 和 DOUBLE 遵循 IEEE 754 浮点数标准,支持特殊值如 INF(无穷大)和 NaN(非数字)。
基本上就这些。浮点类型在MySQL中就是用来高效存储和处理近似小数的,关键要明白它不精确,别用在钱上。










