当前位置: C语言 -- 标准库 -- <float.h> -- FLT_DIG

FLT_DIG宏


概要:

#define FLT_DIG value //value值由实现定义。


描述:

浮点类型不能准确表示其值域范围内的所有值,ISO/IEC 9899:2018标准对其精度提出了要求。

FLT_DIG表示与float类型对应的十进制位数,q

任何q个十进制位浮点数都可以舍入为基数为b、位数为p的浮点数;再次舍入回原浮点形式,q个十进制位保持不变。

{ p log 10 b  如果 b 10 的幂         ( p - 1 ) log 10 b  除此以外

FLT_DIG应不小于6,具体值由实现定义。


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
/*宏FLT_DIG范例*/

#include <float.h>
#include <math.h>
#include <stdio.h>

int main(void)
{
    printf("FLT_MANT_DIG(p) = %d\n", FLT_MANT_DIG);
    printf("FLT_RADIX(b) = %d\n", FLT_RADIX);
    printf("FLT_DIG(q) = %d\n", FLT_DIG);

    if(FLT_RADIX == 10)
      printf("FLT_DIG(q) = %d\n", (int)(FLT_MANT_DIG*log10f(FLT_RADIX)));
    else
      printf("FLT_DIG(q) = %d\n", (int)floorf((FLT_MANT_DIG - 1)*log10f(FLT_RADIX)));

    return 0;
}


输出:

FLT_MANT_DIG(p) = 24

FLT_RADIX(b) = 2

FLT_DIG(q) = 6

FLT_DIG(q) = 6


相关内容:
DBL_DIG 表示与double类型对应的十进制位数的宏。
LDBL_DIG 表示与long double类型对应的十进制位数的宏。