当前位置: C语言 -- 标准库 -- <float.h> -- FLT_MAX

FLT_MAX宏


概要:

#define FLT_MAX value //value值由实现定义。


描述:

该宏表示float类型可表示的最大有限浮点数, ( 1 - b - p ) b e max

FLT_MAX应不小于1E+37,具体值由实现定义。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
/*宏FLT_MAX范例*/

#include <float.h>
#include <math.h>
#include <stdio.h>

int main(void)
{
    printf("FLT_MAX = %E\n",FLT_MAX);
    printf("FLT_MAX = %E\n", \
    	(1 - powf(FLT_RADIX,-FLT_MANT_DIG))*powf(FLT_RADIX,FLT_MAX_EXP-1)*FLT_RADIX);

    return 0;
}


输出:

FLT_MAX = 3.402823E+038

FLT_MAX = 3.402823E+038

数学上FLT_MAX等于 ( 1 - b - p ) b e max ,但C语言中 b e max 不是规格化浮点数;如果使用表达式(1 - powf(FLT_RADIX,-FLT_MANT_DIG))*powf(FLT_RADIX,FLT_MAX_EXP)将不能得到正确的FLT_MAX值; b e max - 1 是规格化浮点数,使用表达式(1 - powf(FLT_RADIX,-FLT_MANT_DIG))*powf(FLT_RADIX,FLT_MAX_EXP-1)*FLT_RADIX能够得到正确的FLT_MAX值。


相关内容:
DBL_MAX 表示double类型可表示的最大有限浮点数的宏。
LDBL_MAX 表示long double类型可表示的最大有限浮点数的宏。