FLOAT
32 位单精度浮点类型(FLOAT)遵循 IEEE 754 标准,有效精度约为 6 到 7 位十进制数字。适合存储不需要精确计算的实数,精确计算场景请使用
DECIMAL。
语法
REAL 是 FLOAT 的别名,用于兼容其他数据库的迁移脚本。别名在解析时立即转换为规范类型,详见类型别名。
值范围
- 最大正值:约 3.4028235 × 10³⁸
- 最小正值(非零):约 1.4 × 10⁻⁴⁵
- 字面量后缀:
(如F
、1.5F
)-3.2F
示例
-
使用 FLOAT 字面量后缀:
返回:
1.5 -
将整数转换为 FLOAT:
返回:
6.0 -
将字符串转换为 FLOAT:
返回:
3.14 -
精度损失示例:
返回:
(超出 7 位有效数字,发生精度损失)1234568.0 -
NULL 值处理:
返回:
NULL
选型建议
| 场景 | 推荐类型 | 原因 |
|---|---|---|
| 金融金额、精确计算 | | 精确小数,无浮点误差 |
| 科学计算、高精度统计 | | 精度约 15-17 位,是 FLOAT 的两倍 |
| ML 特征值、向量元素 | | 精度够用(6-7位),存储比 DOUBLE 节省一半 |
| 与其他系统兼容 | / | 是 的别名 |
FLOAT 与 DOUBLE 精度对比(实测):
注意事项
- FLOAT 是近似数值类型,有效精度约 6-7 位,不适合金融金额等需要精确计算的场景,请使用
。DECIMAL - 避免用
直接比较两个 FLOAT 值,精度误差可能导致意外结果。= - 算术溢出返回
或Infinity
;-Infinity
等无效运算返回sqrt(-1)
。NaN - CAST 转换无效字符串时返回 NULL。
联系我们
