实数用于编写类型 float
、double
和 decimal
的值。
- real-literal:(实数:)
- decimal-digits . decimal-digits exponent-partopt real-type-suffixopt(十进制数字 . 十进制数字 指数部分可选 实数类型后缀可选)
. decimal-digits exponent-partopt real-type-suffixopt(. 十进制数字 指数部分可选 实数类型后缀可选)
decimal-digits exponent-part real-type-suffixopt(十进制数字 指数部分 实数类型后缀可选)
decimal-digits real-type-suffix(十进制数字 实数类型后缀) - exponent-part:(指数部分:)
- e signopt decimal-digits(e 符号可选 十进制数字)
E signopt decimal-digits(E 符号可选 十进制数字) - sign: one of(符号:下列之一)
- + -
- real-type-suffix: one of(实数类型后缀:下列之一)
- F f D d M m
如果未指定实数类型后缀,则实数的类型为 double
。否则,实数类型后缀确定实数的类型,如下所示:
- 以
F
或 f
为后缀的实数的类型为 float
。例如,实数 1f
、1.5f
、1e10f
和 123.456F
的类型都是 float
。
- 以
D
或 d
为后缀的实数的类型为 double
。例如,实数 1d
、1.5d
、1e10d
以及 123.456D
的类型都是 double
。
- 以
M
或 m
为后缀的实数的类型为 decimal
。例如,实数 1m
、1.5m
、1e10m
和 123.456M
的类型都是 decimal
。此实数通过取精确值转换为 decimal
值,如果有必要,用银行家舍入法(第 4.1.7 节)舍入为最接近的可表示值。保留该实数的所有小数位数,除非值被舍入或者值为零(在后一种情况中,符号和小数位数为 0)。因此,实数 2.900m
经分析后将形成这样的一个小数:符号为 0
、系数为 2900
,小数位数为 3
。
如果一个给定的实数不能用指定的类型表示,则会发生编译时错误。
使用 IEEE“就近舍入”模式确定类型 float
或 double
的实数的值。
注意在实数中,小数点后必须始终是十进制数字。例如,1.3F 是实数,但 1.F 不是。
点击加载更多评论>>