c语言中FLT_DIG和DBL_DIG是什么意思

算里存放浮点型数据,并不能精确表示。

这两个宏在float.h头文件下面,用来说明double、float两种数据类型有效数字的位数,注意不是小数点后面的有效位数,而是所有位数。

#define DBL_DIG         15                      /* # of decimal digits of precision */

#define FLT_DIG         6                       /* # of decimal digits of precision */

float能保证的有效位数最多是6~7位,完全能保证的是6位,double是15~16位,完全能保证的是15位。

 

 

float.h

#ifndef FLT_DIG
#define FLT_DIG         6
#endif

 

#ifndef DBL_DIG
#define DBL_DIG         15
#endif

 

#ifndef DBL_MAX
#define DBL_MAX     1.7976931348623158e+308  /* max decimal value of a double */
#endif

#ifndef DBL_MIN
#define DBL_MIN     2.2250738585072014e-308
#endif
 

 

#ifdef __LONGDOUBLE128

/* POWER 128 bit long double */
#define LDBL_MANT_DIG      106
#define LDBL_EPSILON       0.24651903288156618919116517665087070E-31L
#define LDBL_DIG           31
#define LDBL_MIN_EXP       DBL_MIN_EXP
#define LDBL_MIN           ((long double) DBL_MIN)
#define LDBL_MIN_10_EXP    DBL_MIN_10_EXP
#define LDBL_MAX_EXP       DBL_MAX_EXP
#define LDBL_MAX           0.1797693134862315807937289714053023E+309L
#define LDBL_MAX_10_EXP    DBL_MAX_10_EXP

#elif defined(__LONGDOUBLE80)

/* IA64 80 bit long double */
#define LDBL_MANT_DIG      64
#define LDBL_EPSILON       1.0842021724855044340075E-19L
#define LDBL_DIG           18
#define LDBL_MIN_EXP       (-16381)
#define LDBL_MIN           3.36210314311209350626e-4932L
#define LDBL_MIN_10_EXP    (-4931)
#define LDBL_MAX_EXP       16384
#define LDBL_MAX           1.18973149535723176502e+4932L
#define LDBL_MAX_10_EXP    4932

#else

/* default 64 bit long double */
#define LDBL_MANT_DIG      DBL_MANT_DIG
#define LDBL_EPSILON       DBL_EPSILON
#define LDBL_DIG           DBL_DIG

#define LDBL_EPSILON       DBL_EPSILON
#define LDBL_DIG           DBL_DIG
#define LDBL_MIN_EXP       DBL_MIN_EXP
#define LDBL_MIN           DBL_MIN
#define LDBL_MIN_10_EXP    DBL_MIN_10_EXP
#define LDBL_MAX_EXP       DBL_MAX_EXP
#define LDBL_MAX           DBL_MAX
#define LDBL_MAX_10_EXP    DBL_MAX_10_EXP

#endif /* __LONGDOUBLE128 */

#ifdef _ISOC99_SOURCE
#define DECIMAL_DIG        37
#endif

 

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值