以下是 <float.h> 中定义的一些常见的宏:
1. FLT_RADIX:
- 表示浮点数的基数,通常是 2。
2. FLT_MANT_DIG**、**DBL_MANT_DIG**、**LDBL_MANT_DIG:
- 分别表示 float、double 和 long double 类型的尾数位数。
3. FLT_DIG**、**DBL_DIG**、**LDBL_DIG:
- 分别表示 float、double 和 long double 类型的十进制数字的最大精度。
4. FLT_EPSILON**、**DBL_EPSILON**、**LDBL_EPSILON:
- 分别表示 float、double 和 long double 类型的最小增量,即可表示的两个相邻浮点数之间的最小差值。
5. FLT_MIN**、**DBL_MIN**、**LDBL_MIN:
- 分别表示 float、double 和 long double 类型的最小正浮点数。
6. FLT_MAX**、**DBL_MAX**、**LDBL_MAX:
- 分别表示 float、double 和 long double 类型的最大有限浮点数。
这里是一个简单的例子,演示如何使用 <float.h> 中的一些宏:
#include <stdio.h>
#include <float.h>
int main() {
printf("Float: Radix = %d, Mantissa digits = %d, Min exponent = %d, Max exponent = %d\n",
FLT_RADIX, FLT_MANT_DIG, FLT_MIN_EXP, FLT_MAX_EXP);
printf("Double: Radix = %d, Mantissa digits = %d, Min exponent = %d, Max exponent = %d\n",
FLT_RADIX, DBL_MANT_DIG, DBL_MIN_EXP, DBL_MAX_EXP);
printf("Long Double: Radix = %d, Mantissa digits = %d, Min exponent = %d, Max exponent = %d\n",
FLT_RADIX, LDBL_MANT_DIG, LDBL_MIN_EXP, LDBL_MAX_EXP);
printf("Float: Min = %e, Max = %e, Epsilon = %e\n", FLT_MIN, FLT_MAX, FLT_EPSILON);
printf("Double: Min = %e, Max = %e, Epsilon = %e\n", DBL_MIN, DBL_MAX, DBL_EPSILON);
printf("Long Double: Min = %Le, Max = %Le, Epsilon = %Le\n", LDBL_MIN, LDBL_MAX, LDBL_EPSILON);
return 0;
}
这个程序输出了浮点数的一些基本信息,包括基数、尾数位数、指数范围、最小和最大正浮点数以及最小增量。请注意,这些宏的值可能因系统而异,因此在不同的系统上可能会有所不同。
转载请注明出处:http://www.pingtaimeng.com/article/detail/3202/C语言