<float.h> 是 C 语言标准库中的头文件,提供了关于浮点数的一些特性的信息。这个头文件定义了一些宏,这些宏描述了浮点数在系统中的实现方式、范围和精度等信息。

以下是 <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.zyzy.cn/article/detail/3202/C语言