Floating-Point Constants

Floating-point constants specify values that must have a fractional part. These values contain decimal points (.) and may contain exponents.

Syntax

floating-constant:
fractional-constant exponent-part
optfloating-suffixopt
digit-sequence exponent-part floating-suffixopt

fractional-constant:
digit-sequence
opt. digit-sequence
digit-sequence.

exponent-part:
e signoptdigit-sequence
E signoptdigit-sequence

sign: one of
+ –

digit-sequence:
digit
digit-sequence digit

floating-suffix: one of
f l F L

Floating-point constants have a “mantissa,” which specifies the value of the number, an “exponent,” which specifies the magnitude of the number, and an optional suffix that specifies the constant's type. The mantissa is specified as a sequence of digits followed by a period, followed by an optional sequence of digits representing the fractional part of the number. For example:

18.46

38.

The exponent, if present, specifies the magnitude of the number as a power of 10, as shown in the following example:

18.46e0// 18.46

18.46e1// 184.6

If an exponent is present, the trailing decimal point is unnecessary in whole numbers such as 18E0.

Floating-point constants default to type double. By using the suffixes f or l (or F or L—the suffix is not case sensitive), the constant can be specified as float or long double, respectively.