C语言 <float.h> 头文件

  • float.h 文件

    C标准库的float.h头文件包含一组与浮点值相关的各种平台相关的常数。这些常量由ANSI C提出。它们允许制作更多可移植的程序。在检查所有常量之前,最好了解浮点数由以下四个元素组成:
    以下是标头float.h中定义的宏-
    组件 描述
    S 符号(+/-)
    b 指数表示形式的基数或基数,二进制表示2,十进制表示10,十六进制表示16,依此类推...
    e 指数,介于最小emin和最大emax之间的整数。
    p 精度,以有效位数为单位的b位数字。
    基于以上四个组成部分,浮点的值如下:
    
    floating-point = ( S ) p x be
    
    or
    
    floating-point = (+/-) precision x baseexponent
    
  • 以下值是特定于实现的,并使用#define指令定义,但这些值不得低于此处给出的值。请注意,在所有情况下,FLT均指代float类型,DBL指代double类型,而LDBL指代long double类型。
    描述
    FLT_ROUNDS 定义浮点加法的舍入模式,并且可以具有以下任何值:
    • -1-不确定
    • 0- 接近零
    • 1- 最接近
    • 2 −正无穷大
    • 3 −负无穷大
    FLT_RADIX 2 这定义了指数的基数基数表示。base-2是二进制,base-10是常规的十进制表示形式,base-16是十六进制。
    FLT_MANT_DIG,DBL_MANT_DIG,LDBL_MANT_DIG 这些宏定义数字中的位数(以FLT_RADIX为基础)。
    FLT_DIG 6,DBL_DIG 10,LDBL_DIG 10 这些宏定义了四舍五入后可以无变化表示的最大十进制数字(以10为基数)。
    FLT_MIN_EXP,DBL_MIN_EXP,LDBL_MIN_EXP 这些宏定义基本FLT_RADIX中指数的最小负整数值。
    FLT_MIN_10_EXP -37,DBL_MIN_10_EXP -37,LDBL_MIN_10_EXP -37 这些宏定义以10为底的指数的最小负整数值。
    FLT_MAX_EXP,DBL_MAX_EXP,LDBL_MAX_EXP 这些宏定义基本FLT_RADIX中指数的最大整数值。
    FLT_MAX_10_EXP +37,DBL_MAX_10_EXP +37,LDBL_MAX_10_EXP +37 这些宏定义了以10为底的指数的最大整数值。
    FLT_MAX 1E + 37,DBL_MAX 1E + 37,LDBL_MAX 1E + 37 这些宏定义最大有限浮点值。
    FLT_EPSILON 1E-5,DBL_EPSILON 1E-9,LDBL_EPSILON 1E-9 这些宏定义了可表示的最低有效数字。
    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);
    }
    
    尝试一下