IEEE Floating Point - The GNU C Library

Previous: Floating Point Parameters, Up: Floating Type Macros

##### A.5.3.3 IEEE Floating Point

Here is an example showing how the floating type measurements come out for the most common floating point representation, specified by the IEEE Standard for Binary Floating Point Arithmetic (ANSI/IEEE Std 754-1985). Nearly all computers designed since the 1980s use this format.

The IEEE single-precision float representation uses a base of 2. There is a sign bit, a mantissa with 23 bits plus one hidden bit (so the total precision is 24 base-2 digits), and an 8-bit exponent that can represent values in the range -125 to 128, inclusive.

So, for an implementation that uses this representation for the `float` data type, appropriate values for the corresponding parameters are:

         FLT_RADIX                             2
         FLT_MANT_DIG                         24
         FLT_DIG                               6
         FLT_MIN_EXP                        -125
         FLT_MIN_10_EXP                      -37
         FLT_MAX_EXP                         128
         FLT_MAX_10_EXP                      +38
         FLT_MIN                 1.17549435E-38F
         FLT_MAX                 3.40282347E+38F
         FLT_EPSILON             1.19209290E-07F

Here are the values for the `double` data type:

         DBL_MANT_DIG                         53
         DBL_DIG                              15
         DBL_MIN_EXP                       -1021
         DBL_MIN_10_EXP                     -307
         DBL_MAX_EXP                        1024
         DBL_MAX_10_EXP                      308
         DBL_MAX         1.7976931348623157E+308
         DBL_MIN         2.2250738585072014E-308
         DBL_EPSILON     2.2204460492503131E-016