Developer Guide and Reference

Contents

Floating-Point Formats

This IEEE 754-2008 standard specifies formats and methods for floating-point representation in computer systems, and recommends formats for data interchange. The exception conditions are defined, and the standard handling of these conditions is specified below. The binary counterpart floating-point exception functions are described in ISO C99. The decimal floating-point exception functions are defined in the
fenv.h
header file. The compiler supports decimal floating point types in C and C++. The decimal floating point formats are defined in the IEEE 754-2008 standard.
In C, these decimal floating types are supported:
  • _Decimal32
  • _Decimal64
  • _Decimal128
In C++ for Windows* and Linux*, these decimal classes are supported:
  • decimal32
  • decimal64
  • decimal128
To use this feature in C++ on Linux*, GCC* 4.5 or later is required.
The decimal floating-point is not supported in C++ for
macOS*
.
To ensure correct decimal floating-point behavior, you must define
__STDC_WANT_DEC_FP__
before any standard headers are included. This is required for the declaration of decimal macros and library functions in order to ensure correct decimal floating-point results at run-time.
Example: Linux*
#include <iostream> #define __STDC_WANT_DEC_FP__ #include <decimal/decimal> typedef std::decimal::decimal32 _Decimal32; typedef std::decimal::decimal64 _Decimal64; typedef std::decimal::decimal128 _Decimal128; #include <dfp754.h> using namespace std; using namespace std::decimal; int main() { std::decimal::decimal32 d = 4.7df; std::cout << decimal_to_long_double(d) << std::endl; return 0; }
Example: Windows*
#include <iostream> #define __STDC_WANT_DEC_FP__ #include <decimal> #include <dfp754.h> using namespace std; using namespace std::decimal; int main() { std::decimal::decimal32 d = 4.7df; std::cout << decimal_to_long_double(d) << std::endl; return 0; }

Functions to Check Decimal Floating-Point Status

Use these floating-point exception functions to detect exceptions that occur during decimal floating-point arithmetic:
Floating-Point Functions
Function
Brief Description