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