Floating-point extensions for C - Part 1: Binary floating-point arithmetic, ISO/IEC TS 18661-1:2014, defines the following new components for the C standard library, as recommended by ISO/IEC/IEEE 60559:2011 (the current revision of IEEE-754)

conversions between all supported binary floating-point types and character sequences with at most CR_DECIMAL_DIG significant decimal digits are correctly rounded (this is at least DECIMAL_DIG + 3) (macro constant)

Defined in header <fenv.h>

femode_t

(FP Ext 1 TS)

collection of dynamic floating-point control modes supported by the implementation, including the dynamic rounding direction mode (typedef)

The standard C macros __STDC_IEC_559__ and __STDC_IEC_559_COMPLEX__ are made obsolete by this technical specification.

All functions and macros added to the C library by this extension are only declared if a macro __STDC_WANT_IEC_60559_BFP_EXT__ is defined before the corresponding header is included.

Besides additions to the standard library, ISO/IEC TS 18661-1:2014 makes a number of changes to the core language, notably splitting floating-point control between static (controlled by the new #pragma STDC FENV_ROUND), and dynamic (controlled by fesetround). Most math.h functions respect the static rounding mode, if set, over the dynamic rounding mode.

This section is incompleteReason: add to the pragma page or describe the pragma in full here?