浮点数据类型
浮点数据类型是近似数据类型。 如果存在的精度超过了系统所能表示的精度,系统就会对有效值进行舍入。
- 语法
[ '+' | '-' ] <digit>… [ '.' [ <digit>… ] ] [( 'e' | 'E' ) [ '+' | '-' ] <digit>… ] [ '+' | '-' ] '.' <digit>… [ ( 'e' | 'E' ) [ '+' | '-' ] <digit>… ] [ '+' | '-' ] <digit>… [ ',' [ <digit>… ] ] [( 'e' | 'E' ) [ '+' | '-' ] <digit>… ] [ '+' | '-' ] ',' <digit>… [ ( 'e' | 'E' ) [ '+' | '-' ] <digit>… ]- 描述
- 可选的前导符号
- 无限前导零
- 至少一位小数
- 小数点或逗号(如需要
- 可选的 "
e或 "E引入一个指数,后面跟一个可选的符号和一个或多个数字
- 限制
- 无千位分隔逗号
- 不支持加载特殊值,即非数值NaN) 值和无穷大值
浮点数值的语法与定点数值的语法相同,但增加了可选的尾部指数说明。
如果小数点前至少有一位小数位,可选的小数点后可以是零位或多位小数位。 如果小数点前没有小数位,可选的小数点后可以是一位或多位小数位。
如果没有明确的小数点,系统会假定小数点紧跟在最后一位小数之后。
您可以使用逗号作为分隔符,就像使用小数点一样。
可选的 10 的幂指数为 "e(小写或大写),带有可选的符号和必选的十进制数字序列。
下表介绍了浮点精度和表示方法:
| 类型 | 实数 | 双 |
|---|---|---|
| 表示法 | 4 字节 IEEE 浮点 | 8 字节 IEEE 浮点 |
| 约最大标准化值 | ±3.40e+38 | ±1.79e+308 |
| 约最小标准化值 | ±1.18e-38 | ±3.40e-308 |
| 近似最小去规范化值 | ±7.01e-46 | ±2.50e-324 |
以下情况会导致系统错误:
- 溢出
- 字段超过最大可表示值(最大指数和最大符号)。
- 下溢
- 这个数字太小,无法在去规范化范围内进行近似计算。