5.11 Decimal Floating Types
As an extension, the GNU C compiler supports decimal floating types as defined in the N1312 draft of ISO/IEC WDTR24732. Support for decimal floating types in GCC will evolve as the draft technical report changes. Calling conventions for any target might also change. Not all targets support decimal floating types.
The decimal floating types are
_Decimal128. They use a radix of ten, unlike the floating types
long double whose radix is not
specified by the C standard but is usually two.
Support for decimal floating types includes the arithmetic operators
add, subtract, multiply, divide; unary arithmetic operators;
relational operators; equality operators; and conversions to and from
integer and other floating types. Use a suffix df or
DF in a literal constant of type
or DD for
_Decimal64, and dl or DL for
GCC support of decimal float as specified by the draft technical report is incomplete:
FLOAT_CONST_DECIMAL64is not supported, nor is the d suffix for literal constants of type
- When the value of a decimal floating type cannot be represented in the integer type to which it is being converted, the result is undefined rather than the result value specified by the draft technical report.
- GCC does not provide the C library functionality associated with
math.h, fenv.h, stdio.h, stdlib.h, and
wchar.h, which must come from a separate C library implementation.
Because of this the GNU C compiler does not define macro
__STDC_DEC_FP__to indicate that the implementation conforms to the technical report.
are supported by the DWARF2 debug information format.