当前位置:   article > 正文

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

flt_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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/302808
推荐阅读
相关标签
  

闽ICP备14008679号