<float.h>

<float.h>


Include the standard header <float.h> to determine various properties of floating-point type representations. The standard header <float.h> is available even in a freestanding implementation.

You can test only the value of the macro 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.)

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 <integer rvalue>
#define DBL_DIG <integer rvalue >= 10>
#define DBL_EPSILON <double rvalue <= 10^(-9)>
#define DBL_MANT_DIG <integer rvalue>
#define DBL_MAX <double rvalue >= 10^37>
#define DBL_MAX_10_EXP <integer rvalue >= 37>
#define DBL_MAX_EXP <integer rvalue>
#define DBL_MIN <double rvalue <= 10^(-37)>
#define DBL_MIN_10_EXP <integer rvalue <= -37>
#define DBL_MIN_EXP <integer rvalue>

#define FLT_DIG <integer rvalue >= 6>
#define FLT_EPSILON <float rvalue <= 10^(-5)>
#define FLT_MANT_DIG <integer rvalue>
#define FLT_MAX <float rvalue >= 10^37>
#define FLT_MAX_10_EXP <integer rvalue >= 37>
#define FLT_MAX_EXP <integer rvalue>
#define FLT_MIN <float rvalue <= 10^(-37)>
#define FLT_MIN_10_EXP <integer rvalue <= -37>
#define FLT_MIN_EXP <integer rvalue>

#define LDBL_DIG <integer rvalue >= 10>
#define LDBL_EPSILON <long double rvalue <= 10^(-9)>
#define LDBL_MANT_DIG <integer rvalue>
#define LDBL_MAX <long double rvalue >= 10^37>
#define LDBL_MAX_10_EXP <integer rvalue >= 37>
#define LDBL_MAX_EXP <integer rvalue>
#define LDBL_MIN <long double rvalue <= 10^(-37)>
#define LDBL_MIN_10_EXP <integer rvalue <= -37>
#define LDBL_MIN_EXP <integer rvalue>

DBL_DIG

#define DBL_DIG <integer rvalue >= 10>

The macro yields the precision in decimal digits for type double.

DBL_EPSILON

#define DBL_EPSILON <double rvalue <= 10^(-9)>

The macro yields the smallest X of type double such that 1.0 + X != 1.0.

DBL_MANT_DIG

#define DBL_MANT_DIG <integer rvalue>

The macro yields the number of mantissa digits, base FLT_RADIX, for type double.

DBL_MAX

#define DBL_MAX <double rvalue >= 10^37>

The macro yields the largest finite representable value of type double.

DBL_MAX_10_EXP

#define DBL_MAX_10_EXP <integer rvalue >= 37>

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 <integer rvalue>

The macro yields the maximum integer X, such that FLT_RADIX^(X - 1) is a finite representable value of type double.

DBL_MIN

#define DBL_MIN <double rvalue <= 10^(-37)>

The macro yields the smallest normalized, finite representable value of type double.

DBL_MIN_10_EXP

#define DBL_MIN_10_EXP <integer rvalue <= -37>

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 <integer rvalue>

The macro yields the minimum integer X such that FLT_RADIX^(X - 1) is a normalized, finite representable value of type double.

FLT_DIG

#define FLT_DIG <integer rvalue >= 6>

The macro yields the precision in decimal digits for type float.

FLT_EPSILON

#define FLT_EPSILON <float rvalue <= 10^(-5)>

The macro yields the smallest X of type float such that 1.0 + X != 1.0.

FLT_MANT_DIG

#define FLT_MANT_DIG <integer rvalue>

The macro yields the number of mantissa digits, base FLT_RADIX, for type float.

FLT_MAX

#define FLT_MAX <float rvalue >= 10^37>

The macro yields the largest finite representable value of type float.

FLT_MAX_10_EXP

#define FLT_MAX_10_EXP <integer rvalue >= 37>

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 <integer rvalue>

The macro yields the maximum integer X, such that FLT_RADIX^(X - 1) is a finite representable value of type float.

FLT_MIN

#define FLT_MIN <float rvalue <= 10^(-37)>

The macro yields the smallest normalized, finite representable value of type float.

FLT_MIN_10_EXP

#define FLT_MIN_10_EXP <integer rvalue <= -37>

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 <integer rvalue>

The macro yields the minimum integer X, such that FLT_RADIX^(X - 1) is a normalized, finite representable value of type float.

FLT_RADIX

#define FLT_RADIX <#if expression >= 2>

The macro yields the radix of all floating-point representations.

FLT_ROUNDS

#define FLT_ROUNDS <integer rvalue>

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 <integer rvalue >= 10>

The macro yields the precision in decimal digits for type long double.

LDBL_EPSILON

#define LDBL_EPSILON <long double rvalue <= 10^(-9)>

The macro yields the smallest X of type long double such that 1.0 + X != 1.0.

LDBL_MANT_DIG

#define LDBL_MANT_DIG <integer rvalue>

The macro yields the number of mantissa digits, base FLT_RADIX, for type long double.

LDBL_MAX

#define LDBL_MAX <long double rvalue >= 10^37>

The macro yields the largest finite representable value of type long double.

LDBL_MAX_10_EXP

#define LDBL_MAX_10_EXP <integer rvalue >= 37>

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 <integer rvalue>

The macro yields the maximum integer X, such that FLT_RADIX^(X - 1) is a finite representable value of type long double.

LDBL_MIN

#define LDBL_MIN <long double rvalue <= 10^(-37)>

The macro yields the smallest normalized, finite representable value of type long double.

LDBL_MIN_10_EXP

#define LDBL_MIN_10_EXP <integer rvalue <= -37>

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 <integer rvalue>

The macro yields the minimum integer X, such that FLT_RADIX^(X - 1) is a normalized, finite representable value of type long double.


See also the Table of Contents and the Index.

Copyright © 1992-2006 by P.J. Plauger and Jim Brodie. All rights reserved.

Last modified: 2013-12-21



Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus