- C 标准库
- C 库 - 主页
- C 库 - <assert.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <float.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdarg.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <time.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用的资源
- C 库 - 讨论
C 库 - <float.h>
C 标准库的float.h头文件包含一组与浮点值相关的各种与平台相关的常量。这些常数是由 ANSI C 提出的。它们允许制作更多可移植的程序。在检查所有常量之前,最好了解浮点数由以下四个元素组成 -
先生。 | 组件及组件说明 |
---|---|
1 |
S 符号 (+/-) |
2 |
乙 指数表示的基数或基数,2 表示二进制,10 表示十进制,16 表示十六进制,依此类推... |
3 |
e 指数,最小值e min和最大值e max之间的整数。 |
4 |
p 精度,有效数中以 b 为基数的位数。 |
基于上述 4 个组成部分,浮点的值如下 -
floating-point = ( S ) p x be or floating-point = (+/-) precision x baseexponent
库宏
以下值是特定于实现的,并使用 #define 指令定义,但这些值不得低于此处给出的值。请注意,在所有情况下,FLT 指的是float类型,DBL 指的是double 类型,LDBL 指的是long double 类型。
先生。 | 宏及描述 |
---|---|
1 | FLT_ROUNDS 定义浮点加法的舍入模式,它可以具有以下任何值 -
|
2 | FLT_RADIX 2 这定义了指数的基数表示。以 2 为基数是二进制,以 10 为基数是正常的十进制表示形式,以 16 为基数是十六进制。 |
3 | FLT_MANT_DIG DBL_MANT_DIG LDBL_MANT_DIG 这些宏定义数字中的位数(以 FLT_RADIX 为基数)。 |
4 | FLT_DIG 6 DBL_DIG 10 LDBL_DIG 10 这些宏定义了舍入后可以表示的最大十进制位数(以 10 为底)。 |
5 | FLT_MIN_EXP DBL_MIN_EXP LDBL_MIN_EXP 这些宏定义基本 FLT_RADIX 中指数的最小负整数值。 |
6 | FLT_MIN_10_EXP -37 DBL_MIN_10_EXP -37 LDBL_MIN_10_EXP -37 这些宏定义以 10 为基数的指数的最小负整数值。 |
7 | FLT_MAX_EXP DBL_MAX_EXP LDBL_MAX_EXP 这些宏定义基本 FLT_RADIX 中指数的最大整数值。 |
8 | FLT_MAX_10_EXP +37 DBL_MAX_10_EXP +37 LDBL_MAX_10_EXP +37 这些宏定义以 10 为基数的指数的最大整数值。 |
9 | FLT_最大1E+37 DBL_最大1E+37 LDBL_最大 1E+37 这些宏定义最大有限浮点值。 |
10 | FLT_EPSILON 1E-5 DBL_EPSILON 1E-9 LDBL_EPSILON 1E-9 这些宏定义可表示的最低有效数字。 |
11 | FLT_MIN 1E-37 DBL_MIN 1E-37 LDBL_MIN 1E-37 这些宏定义最小浮点值。 |
例子
以下示例显示了 float.h 文件中定义的一些常量的用法。
#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 = %.10e\n", FLT_MANT_DIG); }
让我们编译并运行上面的程序,将产生以下结果 -
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-312