D.3. 浮点数限制

本节介绍了浮点数的特征。

Table D.3 给出了浮点数的特征、范围和限制。 这些常数是在 float.h 包含文件中定义的。

Table D.3. 浮点限制

常数 含义
FLT_MAX float 的最大值 3.40282347e+38F
FLT_MIN float 的最小标准化正浮点数值 1.17549435e-38F
DBL_MAX double 的最大值 1.79769313486231571e+308
DBL_MIN double 的最小标准化正浮点数值 2.22507385850720138e-308
LDBL_MAX long double 的最大值 1.79769313486231571e+308
LDBL_MIN long double 的最小标准化正浮点数值 2.22507385850720138e-308
FLT_MAX_EXP float 类型以 2 为底的指数的最大值 128
FLT_MIN_EXP float 类型以 2 为底的指数的最小值 -125
DBL_MAX_EXP double 类型以 2 为底的指数的最大值 1 024
DBL_MIN_EXP double 类型以 2 为底的指数的最小值 -1 021
LDBL_MAX_EXP long double 类型以 2 为底的指数的最大值 1 024
LDBL_MIN_EXP long double 类型以 2 为底的指数的最小值 -1 021
FLT_MAX_10_EXP float 类型以 10 为底的指数的最大值 38
FLT_MIN_10_EXP float 类型以 10 为底的指数的最小值 -37
DBL_MAX_10_EXP double 类型以 10 为底的指数的最大值 308
DBL_MIN_10_EXP double 类型以 10 为底的指数的最小值 -307
LDBL_MAX_10_EXP long double 类型以 10 为底的指数的最大值 308
LDBL_MIN_10_EXP long double 类型以 10 为底的指数的最小值 -307

Table D.4 介绍了浮点数的其他特征。 这些常数也是在 float.h 包含文件中定义的。

Table D.4. 其他浮点特征

常数 含义
FLT_RADIX ARM 浮点数表示法的底(基数) 2
FLT_ROUNDS 浮点数的舍入模式 (最接近的)1
FLT_DIG float 精度的十进制位数 6
DBL_DIG double 精度的十进制位数 15
LDBL_DIG long double 精度的十进制位数 15
FLT_MANT_DIG float 精度的二进制位数 24
DBL_MANT_DIG double 精度的二进制位数 53
LDBL_MANT_DIG long double 类型的精度的二进制位数 53
FLT_EPSILON 对于 float 类型,1.0 + x != 1.0 中 x 的最小正值 1.19209290e-7F
DBL_EPSILON 对于 double 类型,1.0 + x != 1.0 中 x 的最小正值 2.2204460492503131e-16
LDBL_EPSILON 对于 long double 类型,1.0 + x != 1.0 中 x 的最小正值 2.2204460492503131e-16L

Note

  • 将某个浮点数转换为更短的浮点数时,它将舍入到最接近的可表示数。

  • 浮点算法符合 IEEE 754。

Copyright © 2007 ARM Limited. All rights reserved. ARM DUI 0348AC
Non-Confidential