<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 the values of any of the integer macros except
FLT_ROUNDS
in an
if directive.
(The macros expand to
#if expressions.)
All other macros defined in this header expand to
floating-point constant 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 FLT_EVAL_METHOD <#if expression> [added with C99] #define DECIMAL_DIG <#if expression> >= 10 [added with C99] #define DBL_DIG <#if expression >= 10> #define DBL_EPSILON <double constant <= 10^(-9)> #define DBL_MANT_DIG <#if expression> #define DBL_MAX <double constant >= 10^37> #define DBL_MAX_10_EXP <#if expression >= 37> #define DBL_MAX_EXP <#if expression> #define DBL_MIN <double constant <= 10^(-37)> #define DBL_MIN_10_EXP <#if expression <= -37> #define DBL_MIN_EXP <#if expression> #define FLT_DIG <#if expression >= 6> #define FLT_EPSILON <float constant <= 10^(-5)> #define FLT_MANT_DIG <#if expression> #define FLT_MAX <float constant >= 10^37> #define FLT_MAX_10_EXP <#if expression >= 37> #define FLT_MAX_EXP <#if expression> #define FLT_MIN <float constant <= 10^(-37)> #define FLT_MIN_10_EXP <#if expression <= -37> #define FLT_MIN_EXP <#if expression> #define LDBL_DIG <#if expression >= 10> #define LDBL_EPSILON <long double constant <= 10^(-9)> #define LDBL_MANT_DIG <#if expression> #define LDBL_MAX <long double constant >= 10^37> #define LDBL_MAX_10_EXP <#if expression >= 37> #define LDBL_MAX_EXP <#if expression> #define LDBL_MIN <long double constant <= 10^(-37)> #define LDBL_MIN_10_EXP <#if expression <= -37> #define LDBL_MIN_EXP <#if expression>
DBL_DIG
#define DBL_DIG <#if expression >= 10>
The macro yields the precision in decimal digits for type double.
DBL_EPSILON
#define DBL_EPSILON <double constant <= 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 <#if expression>
The macro yields the number of mantissa digits, base
FLT_RADIX
,
for type double.
DBL_MAX
#define DBL_MAX <double constant >= 10^37>
The macro yields the largest finite representable value of type double.
DBL_MAX_10_EXP
#define DBL_MAX_10_EXP <#if expression >= 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 <#if expression>
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 constant <= 10^(-37)>
The macro yields the smallest normalized, finite representable value of type double.
DBL_MIN_10_EXP
#define DBL_MIN_10_EXP <#if expression <= -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 <#if expression>
The macro yields the minimum integer X such that
FLT_RADIX
^(X - 1)
is a normalized, finite representable value of type double.
DECIMAL_DIG
#define DECIMAL_DIG <#if expression >= 10> [added with C99]
The macro yields the minimum number of decimal digits needed to represent all the significant digits for type long double.
FLT_DIG
#define FLT_DIG <#if expression >= 6>
The macro yields the precision in decimal digits for type float.
FLT_EPSILON
#define FLT_EPSILON <float constant <= 10^(-5)>
The macro yields the smallest X of type float such that 1.0 + X != 1.0.
FLT_EVAL_METHOD
#define FLT_EVAL_METHOD <#if expression> [added with C99]
The macro yields a value that describes the evaluation mode for floating-point operations. The values are:
An implementation can define additional negative values for this macro.
FLT_MANT_DIG
#define FLT_MANT_DIG <#if expression>
The macro yields the number of mantissa digits, base
FLT_RADIX
,
for type float.
FLT_MAX
#define FLT_MAX <float constant >= 10^37>
The macro yields the largest finite representable value of type float.
FLT_MAX_10_EXP
#define FLT_MAX_10_EXP <#if expression >= 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 <#if expression>
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 constant <= 10^(-37)>
The macro yields the smallest normalized, finite representable value of type float.
FLT_MIN_10_EXP
#define FLT_MIN_10_EXP <#if expression <= -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 <#if expression>
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:
An implementation can define additional values for this macro.
LDBL_DIG
#define LDBL_DIG <#if expression >= 10>
The macro yields the precision in decimal digits for type long double.
LDBL_EPSILON
#define LDBL_EPSILON <long double constant <= 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 <#if expression>
The macro yields the number of mantissa digits, base
FLT_RADIX
,
for type long double.
LDBL_MAX
#define LDBL_MAX <long double constant >= 10^37>
The macro yields the largest finite representable value of type long double.
LDBL_MAX_10_EXP
#define LDBL_MAX_10_EXP <#if expression >= 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 <#if expression>
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 constant <= 10^(-37)>
The macro yields the smallest normalized, finite representable value of type long double.
LDBL_MIN_10_EXP
#define LDBL_MIN_10_EXP <#if expression <= -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 <#if expression>
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 © 1989-2002 by P.J. Plauger and Jim Brodie. All rights reserved.