float.h(3HEAD) Headers float.h(3HEAD)NAME
float.h, float - floating types
SYNOPSIS
#include <float.h>
DESCRIPTION
The characteristics of floating types are defined in terms of a model
that describes a representation of floating-point numbers and values
that provide information about an implementation's floating-point
arithmetic.
The following parameters are used to define the model for each float‐
ing-point type:
s sign (±1)
b base or radix of exponent representation (an integer >1)
e exponent (an integer between a minimum e(min) and a maximum
e(max))
p precision (the number of base-b digits in the significand)
f(k) non-negative integers less than b (the significand digits)
In addition to normalized floating-point numbers (f(1)>0 if x≠0),
floating types might be able to contain other kinds of floating-point
numbers, such as subnormal floating-point numbers (x≠0, e=e(min),
f(1)=0) and unnormalized floating-point numbers (x≠0, e=e(min),
f(1)=0), and values that are not floating-point numbers, such as
infinities and NaNs. A NaN is an encoding signifying Not-a-Number. A
quiet NaN propagates through almost every arithmetic operation without
raising a floating-point exception; a signaling NaN generally raises a
floating-point exception when occurring as an arithmetic operand.
The accuracy of the library functions in math.h(3HEAD) and com‐
plex.h(3HEAD) that return floating-point results is defined on the
libm(3LIB) manual page.
All integer values in the <float.h> header, except FLT_ROUNDS, are con‐
stant expressions suitable for use in #if preprocessing directives; all
floating values are constant expressions. All except DECIMAL_DIG,
FLT_EVAL_METHOD, FLT_RADIX, and FLT_ROUNDS have separate names for all
three floating-point types. The floating-point model representation is
provided for all values except FLT_EVAL_METHOD and FLT_ROUNDS.
The rounding mode for floating-point addition is characterized by the
value of FLT_ROUNDS:
-1 Indeterminable.
0 Toward zero.
1 To nearest.
2 Toward positive infinity.
3 Toward negative infinity.
The values of operations with floating operands and values subject to
the usual arithmetic conversions and of floating constants are evalu‐
ated to a format whose range and precision might be greater than
required by the type. The use of evaluation formats is characterized by
the architecture-dependent value of FLT_EVAL_METHOD:
-1 Indeterminable.
0 Evaluate all operations and constants just to the range and pre‐
cision of the type.
1 Evaluate operations and constants of type float and double to the
range and precision of the double type; evaluate long double
operations and constants to the range and precision of the long
double type.
2 Evaluate all operations and constants to the range and precision
of the long double type.
The values given in the following list are defined as constants.
o Radix of exponent representation, b.
FLT_RADIX
o Number of base-FLT_RADIX digits in the floating-point sig‐
nificand, p.
FLT_MANT_DIG
DBL_MANT_DIG
LDBL_MANT_DIG
o Number of decimal digits, n, such that any floating-point
number in the widest supported floating type with p(max)
radix b digits can be rounded to a floating-point number
with n decimal digits and back again without change to the
value.
DECIMAL_DIG
o Number of decimal digits, q, such that any floating-point
number with q decimal digits can be rounded into a floating-
point number with p radix b digits and back again without
change to the q decimal digits.
FLT_DIG
DBL_DIG
LDBL_DIG
o Minimum negative integer such that FLT_RADIX raised to that
power minus 1 is a normalized floating-point number, e(min).
FLT_MIN_EXP
DBL_MIN_EXP
LDBL_MIN_EXP
o Minimum negative integer such that 10 raised to that power
is in the range of normalized floating-point numbers.
FLT_MIN_10_EXP
DBL_MIN_10_EXP
LDBL_MIN_10_EXP
o Maximum integer such that FLT_RADIX raised to that power
minus 1 is a representable finite floating-point number,
e(max).
FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
o Maximum integer such that 10 raised to that power is in the
range of representable finite floating-point numbers.
FLT_MAX_10_EXP
DBL_MAX_10_EXP
LDBL_MAX_10_EXP
The values given in the following list are defined as constant expres‐
sions with values that are greater than or equal to those shown:
o Maximum representable finite floating-point number.
FLT_MAX
DBL_MAX
LDBL_MAX
The values given in the following list are defined as constant expres‐
sions with implementation-defined (positive) values that are less than
or equal to those shown:
o The difference between 1 and the least value greater than 1
that is representable in the given floating-point type, b^1
- p.
FLT_EPSILON
DBL_EPSILON
LDBL_EPSILON
o Minimum normalized positive floating-point number,
b^e(min)^-1.
FLT_MIN
DBL_MIN
LDBL_MIN
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Committed │
├─────────────────────────────┼─────────────────────────────┤
│Standard │See standards(5). │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOcomplex.h(3HEAD), math.h(3HEAD), attributes(5), standards(5)SunOS 5.11 17 Dec 2003 float.h(3HEAD)