C Library User 手册(11)

240 篇文章 11 订阅
本文详细介绍了C语言中的float.h头文件,涵盖double、float和long double类型的精度(如DBL_DIG、FLT_DIG和LDBL_DIG)、误差范围(如DBL_EPSILON、FLT_EPSILON和LDBL_EPSILON)以及数字表示的最大值和最小值等关键常量。理解这些宏有助于开发者确保数值计算的精确性和浮点数处理的正确性。
摘要由CSDN通过智能技术生成

10.5 float.h

包括标准头文件 <float.h> 以确定浮点类型表示的各种属性。 标准 header<float.h> 甚至在独立实现中也可用。
您可以在 if 指令中测试除 FLT_ROUNDS 之外的任何整数宏的值。 (宏扩展为 #if 表达式。)此标头中定义的所有其他宏扩展为浮点常量表达式。
某些目标环境可以在程序运行时更改浮点类型表示的舍入和错误报告属性。

#define FLT_RADIX <#if expression >= 2>
#define FLT_ROUNDS <integer rvalue>
#define DBL_DIG <#if expression >= 10>
#define DBL_EPSILON <double constant <= 10^(-9)> #define DBL_MANT_DIG <#if expression>
#define DBL_MAX <double constant >= 10^37> #define DBL_MAX_10_EXP <#if expression >= 37> #define DBL_MAX_EXP <#if expression>
#define DBL_MIN <double constant <= 10^(-37)> #define DBL_MIN_10_EXP <#if expression <= -37> #define DBL_MIN_EXP <#if expression>
#define FLT_DIG <#if expression >= 6>
#define FLT_EPSILON <float constant <= 10^(-5)> #define FLT_MANT_DIG <#if expression>
#define FLT_MAX <float constant >= 10^37>
#define FLT_MAX_10_EXP <#if expression >= 37>
#define FLT_MAX_EXP <#if expression>
#define FLT_MIN <float constant <= 10^(-37)>
#define FLT_MIN_10_EXP <#if expression <= -37>
#define FLT_MIN_EXP <#if expression>
#define LDBL_DIG <#if expression >= 10>
#define LDBL_EPSILON <long double constant <= 10^(-9)> #define LDBL_MANT_DIG <#if expression>
#define LDBL_MAX <long double constant >= 10^37> #define LDBL_MAX_10_EXP <#if expression >= 37>
#define LDBL_MAX_EXP <#if expression>
#define LDBL_MIN <long double constant <= 10^(-37)> #define LDBL_MIN_10_EXP <#if expression <= -37> #define LDBL_MIN_EXP <#if expression>

10.5.1 DBL_DIG

#define DBL_DIG <#if expression >= 10>
该宏产生类型为double的十进制数字的精度。

10.5.2 DBL_EPSILON

#define DBL_EPSILON <double constant <= 10^(-9)> 该宏产生最小的double类型的X,使得1.0 +X != 1.0。

10.5.3 DBL_MANT_DIG

#define DBL_MANT_DIG #if expression
该宏产生尾数,基数FLT_RADIX,类型为双数。

10.5.4 DBL_MAX

#define DBL_MAX <双倍数常数>= 10^37
该宏产生的是最大的双倍数类型的有限可表示值。

10.5.5 DBL_MAX_10_EXP

#define DBL_MAX_10_EXP <#if expression >= 37>
该宏产生最大的整数X,使得10^X是一个有限的可表示的双数类型的值。
类型为双数的有限可表示值。

10.5.6 DBL_MAX_EXP

#define DBL_MAX_EXP ##if expression
该宏产生最大的整数X,使得FLT_RADIX^(X - 1)是一个有限的
类型的有限可表示值。

10.5.7 DBL_MIN

#define DBL_MIN <double constant <= 10^(-37)>
该宏产生最小的归一化、有限可表示的double类型的值。

10.5.8 DBL_MIN_10_EXP

#define DBL_MIN_10_EXP ##if expression <= -37>
该宏产生最小的整数X,使得10^X是一个规范化的、有限的
可表示的双数类型的值。

10.5.9 DBL_MIN_EXP

#define DBL_MIN_EXP ##if expression
该宏产生最小的整数X,使得FLT_RADIX^(X - 1)是一个规范化的。
类型的有限可表示值的双数。

10.5.10 FLT_DIG

#define DBL_MIN_EXP ##if expression
该宏产生最小的整数X,使得FLT_RADIX^(X - 1)是一个规范化的。
类型的有限可表示值的双数。

10.5.11 FLT_EPSILON

#define FLT_EPSILON <float constant <= 10^(-5)>
该宏产生最小的float类型的X,使得1.0 +X != 1.0。

10.5.12 FLT_MANT_DIG

#define FLT_MANT_DIG #if expression
该宏产生浮点数的尾数,基数FLT_RADIX,类型为浮点数。

10.5.13 FLT_MAX

#define FLT_MAX = 10^37>.
该宏得到的是float类型的最大有限可表示值。

10.5.14 FLT_MAX_10_EXP

#define FLT_MAX_10_EXP <#if expression >= 37
该宏产生最大的整数X,使得10^X是一个有限的可表示的浮点数。
类型的有限可表示值。

10.5.15 FLT_MAX_EXP

#define FLT_MAX_EXP<#if expression>
该宏产生最大的整数X,使得FLT_RADIX^(X-1)是一个有限的
类型的有限可表示值。

10.5.16 FLT_MIN

#define FLT_MIN <float常数 <= 10^(-37)>
该宏产生最小的归一化、有限可表示的float类型的值。

10.5.17 FLT_MIN_10_EXP

#define FLT_MIN_10_EXP ##if expression <= -37>
该宏产生最小的整数X,使得10^X是一个规范化的、有限的
可表示的float类型的值。

10.5.18 FLT_MIN_EXP

#define FLT_MIN_EXP ##if expression
该宏产生最小整数X,使得FLT_RADIX^(X - 1)是一个规范化的。
类型的有限可表示值的浮点数。

10.5.19 FLT_RADIX

#define FLT_RADIX <#if expression >= 2
该宏产生所有浮点表示法的拉德数。

10.5.20 FLT_ROUNDS

#define FLT_ROUNDS .
该宏产生一个值,描述了当前浮点运算的舍入模式。注意,目标环境可以在程序执行过程中改变四舍五入模式。然而,它是如何做到的,并没有规定。其值为:
■如果模式是不确定的,则为-1
■0,如果四舍五入是朝向零
■1,如果四舍五入到最接近的可表示的数值
■2,如果四舍五入是朝向正无穷大的方向
■如果四舍五入是朝向负无穷大,则为3。
一个实现可以为这个宏定义额外的值。

10.5.21 LDBL_DIG

#define LDBL_DIG <#if expression >= 10
该宏产生长双数类型的小数位精度。

10.5.22 LDBL_EPSILON

#define LDBL_EPSILON <长双常数 <= 10^(-9)>
该宏产生最小的长双类型的X,使1.0 + X != 1.0。

10.5.23 LDBL_MANT_DIG

#define LDBL_MANT_DIG #if expression
该宏产生长双数类型的尾数,基数FLT_RADIX。

10.5.24 LDBL_MAX

#define LDBL_MAX <长双数常数>= 10^37
该宏产生长双类型的最大有限可表示值。

10.5.25 LDBL_MAX_10_EXP

#define LDBL_MAX_10_EXP <#if expression >= 37
该宏产生最大的整数X,使得10^X是一个有限的可表示的值,类型为长双数。
类型的长双数。

10.5.26 LDBL_MAX_EXP

#define LDBL_MAX_EXP <#if expression> </p
该宏产生最大的整数X,使得FLT_RADIX^(X - 1)是一个有限的
可表示的长双类型的值。

10.5.27 LDBL_MIN

#define LDBL_MIN_10_EXP ##if expression <= -37>
该宏产生最小的整数X,使得10^X是一个规范化的、有限的
可表示的长双类型的值。

10.5.28 LDBL_MIN_10_EXP

#define LDBL_MIN_10_EXP ##if expression <= -37>
该宏产生最小的整数X,使得10^X是一个规范化的、有限的
可表示的长双类型的值。

10.5.29 LDBL_MIN_EXP

#define LDBL_MIN_EXP <#if expression> </p
该宏产生最小整数X,使得FLT_RADIX^(X - 1)是一个规范化的。
的有限可表示的长双类型的值。

`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值