# C Programming/float.h

The header **float.h** contains macros that expand to various limits and parameters of the standard floating-point types.

The macros, as defined on ISO 9899:1999 section 5.2.4.2.2, are:

`FLT_ROUNDS`

– indicates the rounding mode for floating-point addition, meaning:

`-1`

indeterminable;`0`

toward zero;`1`

to nearest;`2`

toward positive infinity;`3`

toward negative infinity;- other value means implementation-defined rounding behavior.

`FLT_EVAL_METHOD`

(C99) – determines the evaluation formats of expressions involving all floating types:

`-1`

indeterminable;`0`

evaluate all operations and constants just to the precision of the type;`1`

evaluate operations and constants of type**float**and**double**to the range and precision of the**double**type;`2`

evaluate all operations and constants to the range and precision of the**long double**type;- other value means implementation-defined behavior.

`FLT_RADIX`

– radix of exponent representation (at least`2`

).

`FLT_MANT_DIG`

,`DBL_MANT_DIG`

,`LDBL_MANT_DIG`

– number of digits in the floating-point significand.

`DECIMAL_DIG`

(C99) – (at least`10`

)

`FLT_DIG`

,`DBL_DIG`

,`LDBL_DIG`

- (at least`6`

,`10`

,`10`

)

`FLT_MIN_EXP`

,`DBL_MIN_EXP`

,`LDBL_MIN_EXP`

`FLT_MIN_10_EXP`

,`DBL_MIN_10_EXP`

,`LDBL_MIN_10_EXP`

, (at least`-37`

)

`FLT_MAX_EXP`

,`DBL_MAX_EXP`

,`LDBL_MAX_EXP`

`FLT_MAX_10_EXP`

,`DBL_MAX_10_EXP`

,`LDBL_MAX_10_EXP`

(at least`+37`

)

`FLT_MAX`

,`DBL_MAX`

,`LDBL_MAX`

– (Maximum value, at least`1E+37`

)

`FLT_EPSILON`

,`DBL_EPSILON`

,`LDBL_EPSILON`

– (Machine epsilon, no greater than`1E-5`

,`1E-9`

,`1E-9`

)

`FLT_MIN`

,`DBL_MIN`

,`LDBL_MIN`

– (no greater than`1E-37`

)

## External linksEdit

- The Single UNIX® Specification, Issue 7 from The Open Group : floating types – Base Definitions Reference,
- C++ reference for implementation defined numeric constants inherited from C