C# 语言规范--2.4.4.3 实数

发表于:2007-07-14来源:作者:点击数: 标签:
C# 语言规范--2.4.4.3 实数: 实数用于编写类型 float 、 double 和 decimal 的值。 real-literal: (实数:) decimal-digits . decimal-digitsexponent-part opt real-type-suffix opt (十进制数字 . 十进制数字 指数部分可选 实数类型后缀可选) . decim
C# 语言规范--2.4.4.3 实数:

实数用于编写类型 floatdoubledecimal 的值。

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。否则,实数类型后缀确定实数的类型,如下所示:

  • Ff 为后缀的实数的类型为 float。例如,实数 1f1.5f1e10f123.456F 的类型都是 float
  • Dd 为后缀的实数的类型为 double。例如,实数 1d1.5d1e10d 以及 123.456D 的类型都是 double
  • Mm 为后缀的实数的类型为 decimal。例如,实数 1m1.5m1e10m123.456M 的类型都是 decimal。此实数通过取精确值转换为 decimal 值,如果有必要,用银行家舍入法(第 4.1.7 节)舍入为最接近的可表示值。保留该实数的所有小数位数,除非值被舍入或者值为零(在后一种情况中,符号和小数位数为 0)。因此,实数 2.900m 经分析后将形成这样的一个小数:符号为 0、系数为 2900,小数位数为 3

如果一个给定的实数不能用指定的类型表示,则会发生编译时错误。

使用 IEEE“就近舍入”模式确定类型 floatdouble 的实数的值。

注意在实数中,小数点后必须始终是十进制数字。例如,1.3F 是实数,但 1.F 不是。



原文转自:http://www.ltesting.net