Table of Contents 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Notes DownloadECMA-334 C# Language Specification


9 Lexical structure
9.4 Tokens
9.4.4 Literals
9.4.4.3 Real literals
Paragraph 11 Real literals are used to write values of types float, double, and 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 signopt decimal-digits sign :: one of + - real-type-suffix :: one of F f D d M m
Paragraph 21 If no real-type-suffix is specified, the type of the real literal is double. 2 Otherwise, the real-type-suffix determines the type of the real literal, as follows: - 3 A real literal suffixed by F or f is of type float. [Example: For example, the literals 1f, 1.5f, 1e10f, and 123.456F are all of type float. end example]
- 4 A real literal suffixed by D or d is of type double. [Example: For example, the literals 1d, 1.5d, 1e10d, and 123.456D are all of type double. end example]
- 5 A real literal suffixed by M or m is of type decimal. [Example: For example, the literals 1m, 1.5m, 1e10m, and 123.456M are all of type decimal. end example] 6 This literal is converted to a decimal value by taking the exact value, and, if necessary, rounding to the nearest representable value using banker's rounding (§11.1.6). 7 Any scale apparent in the literal is preserved unless the value is rounded or the value is zero (in which latter case the sign and scale will be 0). [Note: Hence, the literal 2.900m will be parsed to form the decimal with sign 0, coefficient 2900, and scale 3. end note]
Paragraph 31 If the specified literal cannot be represented in the indicated type, a compile-time error occurs.
Paragraph 41 The value of a real literal having type float or double is determined by using the IEEE "round to nearest" mode. |
Jagger Software Ltd |
Company # 4070126 |
VAT # 762 5213 42 |

