Floating-point type specifiers fall into the following categories:
Generic, or binary, floating-point types consist of the following:
Decimal floating-point types consist of the following:
The magnitude ranges of the real floating-point types are given in the following table.
| Type | Range |
|---|---|
| float | approximately 1.2-38 to 3.438 |
| double, long double | approximately 2.2-308 to 1.8308 |
| _Decimal32 | 0.000001-95 to 9.99999996 |
| _Decimal64 | 0.000000000000001-383 to 9.999999999999999384 |
| _Decimal128 | 0.000000000000000000000000000000001-6143 to 9.9999999999999999999999999999999996144 |
If a floating-point constant is too large or too small, the result is undefined by the language.
The declarator for a simple floating-point declaration is an identifier. Initialize a simple floating-point variable with a float constant or with a variable or expression that evaluates to an integer or floating-point number.
You can use decimal floating-point types with any of the operators that are supported for binary floating-point types. You can also perform implicit or explicit conversions between decimal floating-point types and all other integral types or generic floating-point types. However, these are the restrictions on the use of decimal floating-point types with other arithmetic types:
Related information