C# LANGUAGE SPECIFICATION
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
If no real-type-suffix is specified, the type of the real literal is double. Otherwise, the real type suffix determines the type of the real literal, as follows:
A real literal suffixed by F or f is of type float. For example, the literals 1f, 1.5f, 1e10f, and 123.456F are all of type float.
A real literal suffixed by D or d is of type double. For example, the literals 1d, 1.5d, 1e10d, and 123.456D are all of type double.
A real literal suffixed by M or m is of type decimal. For example, the literals 1m, 1.5m, 1e10m, and 123.456M are all of type decimal. 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 (§4.1.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). Hence, the literal 2.900m will be parsed to form the decimal with sign 0, coefficient 2900, and scale 3.
If the specified literal cannot be represented in the indicated type, a compile-time error occurs.
The value of a real literal of type float or double is determined by using the IEEE “round to nearest” mode.
Note that in a real literal, decimal digits are always required after the decimal point. For example, 1.3F is a real literal but 1.F is not.
184.108.40.206 Character literals
A character literal represents a single character, and usually consists of a character in quotes, as in 'a'.
character-literal: ' character '
character: single-character simple-escape-sequence hexadecimal-escape-sequence unicode-escape-sequence
single-character: Any character except ' (U+0027), \ (U+005C), and new-line-character
simple-escape-sequence: one of \' \" \\ \0 \a \b \f \n \r \t \v
hexadecimal-escape-sequence: \x hex-digit hex-digitopt hex-digitopt hex-digitopt
42Copyright Microsoft Corporation 1999-2003. All Rights Reserved.