VOOZH about

URL: https://www.geeksforgeeks.org/cpp/cfloat-float-h-in-c-c-with-examples/

⇱ <cfloat> float.h in C/C++ with Examples - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

<cfloat> float.h in C/C++ with Examples

Last Updated : 12 Jul, 2025
This header file consists of platform-dependent and implementation specific floating point values. A floating point has four parts.
  • Sign Its value can be either negative or non-negative.
  • Base It is also known as radix of exponent representation which represents different numbers with single number i.e. 2 for binary, 10 for decimal, 16 for hexadecimal, ...
  • Mantissa It is also known as significand.It is a series of digits of the base. The number of digits in the series is known as precision.
  • Exponent It is also known as characteristic is an integer between minimum emin and maximum emax.
Value of floating point = ± precision X baseexponent
Macro constants Library macros are hardware-specific values for the floating-point types.FLT implies type float, DBL implies double, and LDBL implies long double, DIG implies digits, MANT implies mantissa, EXP implies exponent.
  1. FLT_RADIX: Base for all floating-point types
    Minimum value is 2
  2. FLT_DIG: Number of decimal digits that can be rounded into a floating-point type and back again to the same decimal digits, without loss in precision.
    Minimum value is 6
  3. DBL_DIG or LDBL_DIG: Number of decimal digits that can be rounded into a floating-point and back without change in the number of decimal digits.
    Minimum value is 10
  4. DECIMAL_DIG: Decimal digits needed to represent floating-point value
    No Minimum value
  5. FLT_MANT_DIG or DBL_MANT_DIG or LDBL_MANT_DIG: Precision of mantissa i.e. the number of digits that conform the significand.
    No Minimum value
  6. FLT_MIN_EXP or DBL_MIN_EXP or LDBL_MIN_EXP: Minimum negative integer value for the exponent that generates a normalized floating-point number.
    No Minimum value
  7. FLT_MIN_10_EXP or DBL_MIN_10_EXP or LDBL_MIN_10_EXP: Minimum negative integer value for the exponent of a base-10 expression that would generate a normalized floating-point number.
    Maximum value is -37
  8. FLT_MAX_EXP or DBL_MAX_EXP or LDBL_MAX_EXP: Maximum integer value for the exponent that generates a normalized floating-point number.
    No Minimum value
  9. FLT_MAX_10_EXP or DBL_MAX_10_EXP or LDBL_MAX_10_EXP: Maximum integer value for the exponent of a base-10 expression that would generate a normalized floating-point number.
    Minimum value is 37
  10. FLT_MAX or DBL_MAX or LDBL_MAX: Maximum finite representable floating-point number.
    Minimum value is 1037
  11. FLT_EPSILON: Difference between 1 and the least value greater than 1 that is representable.
    Maximum value is 10-5
  12. DBL_EPSILON or LDBL_EPSILON: Difference between 1 and the least value greater than 1 that is representable.
    Maximum value is 10-9
  13. FLT_MIN or DBL_MIN or LDBL_MIN: Minimum representable positive floating-point number.
    Maximum value is 10-37
  14. FLT_ROUNDS: Rounds off the floating-point number Different possible values are:
    -1 : indeterminate
     0 : towards zero
     1 : towards one
     2 : towards positive infinity
     3 : towards negative infinity
    
  15. FLT_EVAL_METHOD: Rounds off the floating-point number Different possible values are:
    -1 : undetermined
     0 : evaluate just to the range 
     and precision of the type
     1 : evaluate float and double as double,
     and long double as long double.
     2 : evaluate all as long double and Other 
     negative values indicate an 
     implementation defined behavior.
    
Below is the program to demonstrate the working of macros constants in cfloat library.
Output (Machine Dependent):
FLT_RADIX : 2
FLT_DIG : 6
DECIMAL_DIG : 21
FLT_MIN_10_EXP : -37
FLT_MAX_EXP : 128
FLT_MAX_10_EXP : 38
FLT_MAX : 3.40282e+38
FLT_MIN : 1.17549e-38
Reference: https://cplusplus.com/reference/cfloat/
Comment
Article Tags: