C FloatingPoint Constants
A "floatingpoint constant" is a decimal number that represents a signed real number. The representation of a signed real number includes an integer portion, a fractional portion, and an exponent. Use floatingpoint constants to represent floatingpoint values that cannot be changed.
 floatingpointconstant:

fractionalconstant exponentpart _{opt} floatingsuffix _{opt}
digitsequence exponentpart floatingsuffix _{opt}
 fractionalconstant:

digitsequence _{opt} . digitsequence
digitsequence .
 exponentpart:

e sign _{opt} digitsequence
E sign _{opt} digitsequence
 sign : one of

+ –
 digitsequence:

digit
digitsequence digit
 floatingsuffix : one of

f l F L
You can omit either the digits before the decimal point (the integer portion of the value) or the digits after the decimal point (the fractional portion), but not both. You can leave out the decimal point only if you include an exponent. No whitespace characters can separate the digits or characters of the constant.
The following examples illustrate some forms of floatingpoint constants and expressions:
15.75 1.575E1 /* = 15.75 */ 1575e2 /* = 15.75 */ 2.5e3 /* = 0.0025 */ 25E4 /* = 0.0025 */
Floatingpoint constants are positive unless they are preceded by a minus sign (–). In this case, the minus sign is treated as a unary arithmetic negation operator. Floatingpoint constants have type float, double, long, or long double.
A floatingpoint constant without an f, F, l, or L suffix has type double. If the letter f or F is the suffix, the constant has type float. If suffixed by the letter l or L, it has type long double. For example:
100L /* Has type long double */ 100F /* Has type float */
Note that the Microsoft C compiler maps long double to type double. See Storage of Basic Types for information about type double, float, and long.
You can omit the integer portion of the floatingpoint constant, as shown in the following examples. The number .75 can be expressed in many ways, including the following:
.0075e2 0.075e1 .075e1 75e2