Namespaces
Variants

Standard library header <float.h>

From cppreference.net

This header is part of the type support library, in particular its numeric limits interface.

Macros

FLT_RADIX
the radix (integer base) used by the representation of all three floating-point types
(macro constant)
DECIMAL_DIG
(C99)
conversion from long double to decimal with at least DECIMAL_DIG digits and back to long double is the identity conversion: this is the decimal precision required to serialize/deserialize a long double
(macro constant)
FLT_DECIMAL_DIG DBL_DECIMAL_DIG LDBL_DECIMAL_DIG
(C11)
conversion from float / double / long double to decimal with at least FLT_DECIMAL_DIG / DBL_DECIMAL_DIG / LDBL_DECIMAL_DIG digits and back is the identity conversion: this is the decimal precision required to serialize/deserialize a floating-point value. Defined to at least 6 , 10 , and 10 respectively, or 9 for IEEE float and 17 for IEEE double (see also the C++ analog: max_digits10 )
(macro constant)
FLT_MIN DBL_MIN LDBL_MIN
minimum, normalized, positive value of float , double and long double respectively
(macro constant)
FLT_TRUE_MIN DBL_TRUE_MIN LDBL_TRUE_MIN
(C11)
minimum positive value of float , double and long double respectively
(macro constant)
FLT_MAX DBL_MAX LDBL_MAX
maximum finite value of float , double and long double respectively
(macro constant)
FLT_EPSILON DBL_EPSILON LDBL_EPSILON
absolute value difference between 1.0 and the next representable value for float , double and long double respectively
(macro constant)
FLT_DIG DBL_DIG LDBL_DIG
number of decimal digits that are guaranteed to be preserved in text → float / double / long double → text roundtrip without change due to rounding or overflow (see the C++ analog digits10 for detail)
(macro constant)
FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG
number of base- FLT_RADIX digits that are in the floating-point mantissa and that can be represented without losing precision for float , double and long double respectively
(macro constant)
FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP
minimum negative integer such that FLT_RADIX raised by power one less than that integer is a normalized float , double and long double respectively
(macro constant)
FLT_MIN_10_EXP DBL_MIN_10_EXP LDBL_MIN_10_EXP
minimum negative integer such that 10 raised to that power is a normalized float , double and long double respectively
(macro constant)
FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP
maximum positive integer such that FLT_RADIX raised by power one less than that integer is a representable finite float , double and long double respectively
(macro constant)
FLT_MAX_10_EXP DBL_MAX_10_EXP LDBL_MAX_10_EXP
maximum positive integer such that 10 raised to that power is a representable finite float , double and long double respectively
(macro constant)
rounding mode of floating-point arithmetic
(macro constant)
specifies in what precision all arithmetic operations are done
(macro constant)
FLT_HAS_SUBNORM DBL_HAS_SUBNORM LDBL_HAS_SUBNORM
(C11) (deprecated in C23)
whether the type supports subnormal ( denormal ) numbers:
- 1 – indeterminable, 0 – absent, 1 – present
(macro constant)

Synopsis

#define FLT_ROUNDS           /* see definition */
#define FLT_EVAL_METHOD      /* see definition */
#define FLT_HAS_SUBNORM      /* see definition */
#define DBL_HAS_SUBNORM      /* see definition */
#define LDBL_HAS_SUBNORM     /* see definition */
#define FLT_RADIX            /* see definition */
#define FLT_MANT_DIG         /* see definition */
#define DBL_MANT_DIG         /* see definition */
#define LDBL_MANT_DIG        /* see definition */
#define FLT_DECIMAL_DIG      /* see definition */
#define DBL_DECIMAL_DIG      /* see definition */
#define LDBL_DECIMAL_DIG     /* see definition */
#define DECIMAL_DIG          /* see definition */
#define FLT_DIG              /* see definition */
#define DBL_DIG              /* see definition */
#define LDBL_DIG             /* see definition */
#define FLT_MIN_EXP          /* see definition */
#define DBL_MIN_EXP          /* see definition */
#define LDBL_MIN_EXP         /* see definition */
#define FLT_MIN_10_EXP       /* see definition */
#define DBL_MIN_10_EXP       /* see definition */
#define LDBL_MIN_10_EXP      /* see definition */
#define FLT_MAX_EXP          /* see definition */
#define DBL_MAX_EXP          /* see definition */
#define LDBL_MAX_EXP         /* see definition */
#define FLT_MAX_10_EXP       /* see definition */
#define DBL_MAX_10_EXP       /* see definition */
#define LDBL_MAX_10_EXP      /* see definition */
#define FLT_MAX              /* see definition */
#define DBL_MAX              /* see definition */
#define LDBL_MAX             /* see definition */
#define FLT_EPSILON          /* see definition */
#define DBL_EPSILON          /* see definition */
#define LDBL_EPSILON         /* see definition */
#define FLT_MIN              /* see definition */
#define DBL_MIN              /* see definition */
#define LDBL_MIN             /* see definition */
#define FLT_TRUE_MIN         /* see definition */
#define DBL_TRUE_MIN         /* see definition */
#define LDBL_TRUE_MIN        /* see definition */