# <float.h>
<float.h>
# ``
* * *
Include the standard header **``**
to determine various properties of floating-point type representations.
The standard header `` is available even in a
[freestanding implementation](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_lib_over.html#freestanding%20implementation).
You can test only the value of the macro
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX) in an *if* directive.
All other macros defined in this header expand to expressions whose
values can be determined only when the program executes. (These macros are
[rvalue expressions](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_express.html#rvalue%20expression).)
Some target environments can change
the rounding and error-reporting properties of floating-point type
representations while the program is running.
#define FLT_RADIX <#if expression >= 2>
#define FLT_ROUNDS
#define DBL_DIG = 10>
#define DBL_EPSILON
#define DBL_MANT_DIG
#define DBL_MAX = 10^37>
#define DBL_MAX_10_EXP = 37>
#define DBL_MAX_EXP
#define DBL_MIN
#define DBL_MIN_10_EXP
#define DBL_MIN_EXP
#define FLT_DIG = 6>
#define FLT_EPSILON
#define FLT_MANT_DIG
#define FLT_MAX = 10^37>
#define FLT_MAX_10_EXP = 37>
#define FLT_MAX_EXP
#define FLT_MIN
#define FLT_MIN_10_EXP
#define FLT_MIN_EXP
#define LDBL_DIG = 10>
#define LDBL_EPSILON
#define LDBL_MANT_DIG
#define LDBL_MAX = 10^37>
#define LDBL_MAX_10_EXP = 37>
#define LDBL_MAX_EXP
#define LDBL_MIN
#define LDBL_MIN_10_EXP
#define LDBL_MIN_EXP Copy to clipboard
## `DBL_DIG`
#define DBL_DIG = 10>Copy to clipboard
The macro yields the precision in decimal digits for
type *double.*
## `DBL_EPSILON`
#define DBL_EPSILON Copy to clipboard
The macro yields the smallest *X* of type *double*
such that 1.0 + *X* != 1.0.
## `DBL_MANT_DIG`
#define DBL_MANT_DIG Copy to clipboard
The macro yields the number of mantissa digits, base
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX),
for type *double.*
## `DBL_MAX`
#define DBL_MAX = 10^37>Copy to clipboard
The macro yields the largest finite representable value
of type *double.*
## `DBL_MAX_10_EXP`
#define DBL_MAX_10_EXP = 37>Copy to clipboard
The macro yields the maximum integer *X,* such that
10^*X* is a finite representable value of type *double.*
## `DBL_MAX_EXP`
#define DBL_MAX_EXP Copy to clipboard
The macro yields the maximum integer *X,* such that
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX)^(*X* - 1)
is a finite representable value of type *double.*
## `DBL_MIN`
#define DBL_MIN Copy to clipboard
The macro yields the smallest normalized, finite representable
value of type *double.*
## `DBL_MIN_10_EXP`
#define DBL_MIN_10_EXP Copy to clipboard
The macro yields the minimum integer *X* such that
10^*X* is a normalized, finite representable value
of type *double.*
## `DBL_MIN_EXP`
#define DBL_MIN_EXP Copy to clipboard
The macro yields the minimum integer *X* such that
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX)^(*X* - 1)
is a normalized, finite representable value of type *double.*
## `FLT_DIG`
#define FLT_DIG = 6>Copy to clipboard
The macro yields the precision in decimal digits
for type *float.*
## `FLT_EPSILON`
#define FLT_EPSILON Copy to clipboard
The macro yields the smallest *X* of type *float*
such that 1.0 + *X* != 1.0.
## `FLT_MANT_DIG`
#define FLT_MANT_DIG Copy to clipboard
The macro yields the number of mantissa digits, base
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX),
for type *float.*
## `FLT_MAX`
#define FLT_MAX = 10^37>Copy to clipboard
The macro yields the largest finite representable value
of type *float.*
## `FLT_MAX_10_EXP`
#define FLT_MAX_10_EXP = 37>Copy to clipboard
The macro yields the maximum integer *X,* such that 10^*X*
is a finite representable value of type *float.*
## `FLT_MAX_EXP`
#define FLT_MAX_EXP Copy to clipboard
The macro yields the maximum integer *X,* such that
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX)^(*X* - 1)
is a finite representable value of type *float.*
## `FLT_MIN`
#define FLT_MIN Copy to clipboard
The macro yields the smallest normalized, finite representable
value of type *float.*
## `FLT_MIN_10_EXP`
#define FLT_MIN_10_EXP Copy to clipboard
The macro yields the minimum integer *X,* such that 10^*X*
is a normalized, finite representable value of type *float.*
## `FLT_MIN_EXP`
#define FLT_MIN_EXP Copy to clipboard
The macro yields the minimum integer *X,* such that
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX)^(*X* - 1)
is a normalized, finite representable value of type *float.*
## `FLT_RADIX`
#define FLT_RADIX <#if expression >= 2>Copy to clipboard
The macro yields the radix of all floating-point representations.
## `FLT_ROUNDS`
#define FLT_ROUNDS Copy to clipboard
The macro yields a value that describes the current rounding
mode for floating-point operations. Note that the target environment
can change the rounding mode while the program executes. How it does
so, however, is not specified. The values are:
- -1 if the mode is indeterminate
- 0 if rounding is toward zero
- 1 if rounding is to nearest representable value
- 2 if rounding is toward positive infinity
- 3 if rounding is toward negative infinity
An implementation can define additional values for this macro.
## `LDBL_DIG`
#define LDBL_DIG = 10>Copy to clipboard
The macro yields the precision in decimal digits for type *longdouble.*
## `LDBL_EPSILON`
#define LDBL_EPSILON Copy to clipboard
The macro yields the smallest *X* of type *long double*
such that 1.0 + *X* != 1.0.
## `LDBL_MANT_DIG`
#define LDBL_MANT_DIG Copy to clipboard
The macro yields the number of mantissa digits, base
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX),
for type *long double.*
## `LDBL_MAX`
#define LDBL_MAX = 10^37>Copy to clipboard
The macro yields the largest finite representable value of type
*long double.*
## `LDBL_MAX_10_EXP`
#define LDBL_MAX_10_EXP = 37>Copy to clipboard
The macro yields the maximum integer *X,* such that
10^*X* is a finite representable value of type *long double.*
## `LDBL_MAX_EXP`
#define LDBL_MAX_EXP Copy to clipboard
The macro yields the maximum integer *X,* such that
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX)^(*X* - 1)
is a finite representable value of type *long double.*
## `LDBL_MIN`
#define LDBL_MIN Copy to clipboard
The macro yields the smallest normalized, finite representable
value of type *long double.*
## `LDBL_MIN_10_EXP`
#define LDBL_MIN_10_EXP Copy to clipboard
The macro yields the minimum integer *X,* such that
10^*X* is a normalized, finite representable value
of type *long double.*
## `LDBL_MIN_EXP`
#define LDBL_MIN_EXP Copy to clipboard
The macro yields the minimum integer *X,* such that
[`FLT_RADIX`](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_float.html#FLT_RADIX)^(*X* - 1)
is a normalized, finite representable value of type *long double.*
* * *
See also the
**[Table of Contents](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_index.html#Table%20of%20Contents)** and the
**[Index](https://docs.qualcomm.com/doc/80-N3040-23/topic/_cpp_index.html)**.
*[Copyright](https://docs.qualcomm.com/doc/80-N3040-23/topic/cpp_crit_pjp.html) © 1992-2006by P.J. Plauger and Jim Brodie. All rights reserved.*
Last Published: Oct 06, 2026
Previous Topic
Next Topic