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

DBL_MAX宏


概要:

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


描述:

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

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


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

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

int main(void)
{
    printf("DBL_MAX = %E\n",DBL_MAX);
    printf("DBL_MAX = %E\n", \
    	(1 - pow(FLT_RADIX,-DBL_MANT_DIG))*pow(FLT_RADIX,DBL_MAX_EXP-1)*FLT_RADIX);

    return 0;
}


输出:

DBL_MAX = 1.797693E+308

DBL_MAX = 1.797693E+308

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


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