The C Library float.h header file contains a set of various platform-dependent constants related to floating point values. These constants are proposed by ANSI C. The float macros allow developers to create more portable programs. Before proceeding with all the constants, it is better to understand the floating-point number which consist following four elements −
Sr.No. Component & Component Description 1S
sign ( +/- )
2b
The base or radix of the exponent representation, 2 for binary, 10 for decimal, 16 for hexadecimal, and so on...
3e
Exponent, an integer between a minimum emin and a maximum emax.
4p
The precision is a number of base-b digits in the significand.
Based on the above 4 components, a floating point will have its value as follows −
floating-point = ( S ) p x be or floating-point = (+/-) precision x baseexponentLibrary Macros
The following values are implementation-specific and defined with the #define directive, but these values may not be any lower than what is given here. Note that in all instances FLT refers to type float, DBL refers to double, and LDBL refers to long double.
Sr.No. Macro & Description 1FLT_ROUNDS
Defines the rounding mode for floating point addition and it can have any of the following values −
FLT_RADIX 2
This defines the base radix representation of the exponent. A base-2 is binary, base-10 is the normal decimal representation, base-16 is Hex.
3FLT_MANT_DIG
DBL_MANT_DIG
LDBL_MANT_DIG
These macros define the number of digits in the number (in the FLT_RADIX base).
4FLT_DIG 6
DBL_DIG 10
LDBL_DIG 10
These macros define the maximum number decimal digits (base-10) that can be represented without change after rounding.
5FLT_MIN_EXP
DBL_MIN_EXP
LDBL_MIN_EXP
These macros define the minimum negative integer value for an exponent in base FLT_RADIX.
6FLT_MIN_10_EXP -37
DBL_MIN_10_EXP -37
LDBL_MIN_10_EXP -37
These macros define the minimum negative integer value for an exponent in base 10.
7FLT_MAX_EXP
DBL_MAX_EXP
LDBL_MAX_EXP
These macros define the maximum integer value for an exponent in base FLT_RADIX.
8FLT_MAX_10_EXP +37
DBL_MAX_10_EXP +37
LDBL_MAX_10_EXP +37
These macros define the maximum integer value for an exponent in base 10.
9FLT_MAX 1E+37
DBL_MAX 1E+37
LDBL_MAX 1E+37
These macros define the maximum finite floating-point value.
10FLT_EPSILON 1E-5
DBL_EPSILON 1E-9
LDBL_EPSILON 1E-9
These macros define the least significant digit representable.
11FLT_MIN 1E-37
DBL_MIN 1E-37
LDBL_MIN 1E-37
These macros define the minimum floating-point values.
Example 1Following is the C Library header file float.h to define the values of few macros(float) constant.
#include <stdio.h> #include <float.h> int main () { printf("The maximum value of float = %.10e\n", FLT_MAX); printf("The minimum value of float = %.10e\n", FLT_MIN); printf("The number of digits in the number = %.10d\n", FLT_MANT_DIG); }Output
After executing the above code, we get the following result −
The maximum value of float = 3.4028234664e+38 The minimum value of float = 1.1754943508e-38 The number of digits in the number = 7.2996655210e-312Example 2
Following is the C Library header file float.h to define the values of few macros(float) constant.
#include <stdio.h> #include <float.h> int main () { printf("The maximum value of float = %.10e\n", FLT_MAX); printf("The minimum value of float = %.10e\n", FLT_MIN); printf("The number of digits in the number = %.10d\n", FLT_MANT_DIG); }Output
After executing the above code, we get the following result −
The maximum value of float = 3.4028234664e+38 The minimum value of float = 1.1754943508e-38 The number of digits in the number = 1.1754943508e-38Example 3
Below the program uses the macros(FLT_RADIX) to measure the value of base exponents.
#include <stdio.h> #include <float.h> int main() { // Get the value of FLT_RADIX int radix = FLT_RADIX; printf("The base (radix) of the exponent representation: %d\n", radix); return 0; }Output
The above code produces the following output −
The base (radix) of the exponent representation: 2Example 4
Here, we define the three different macros which are FLT_MAX, DBL_MAX, and LDBL_MAX that calculates the number of banayan needed to stack up to Mount Everests height using banayan lengths.
#include <stdio.h> #include <float.h> int main() { // Heights in inches double heightOfEverestInFeet = 29031.7; double heightOfEverestInInches = heightOfEverestInFeet * 12.0; // Banana length (FLT_MAX, DBL_MAX, and LDBL_MAX are all approximately 1E+37) double banayanLength = 1E+37; // Calculate the number of bananas needed double numBanayan = heightOfEverestInInches / banayanLength; printf("Height of Mount Everest: %.2lf feet\n", heightOfEverestInFeet); printf("Length of a magical banayan: %.2lf inches\n", banayanLength); printf("Number of bananas needed to reach the summit: %.2e banayan\n", numBanayan); return 0; }Output
On execution of above code, we get the following output −
Height of Mount Everest: 29031.70 feet Length of a magical banayan: 9999999999999999538762658202121142272.00 inches Number of bananas needed to reach the summit: 3.48e-32 banayan
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4