您的位置:首页 > 其它

double的最大值

2015-09-16 15:35 429 查看
简介

float.h提供了浮点型的范围和精度的宏,没有类型和函数的定义,一般用于数值分析。


被定义的宏编辑


double

DBL_DIG double
小数点后面精确的位数
DBL_EPSILON
小的正数 ,double的0跨度值
DBL_MANT_DIG
尾数中的位数
DBL_MAX
最大值
DBL_MAX_10_EXP
最大10进制指数
DBL_MAX_EXP
最大2进制指数
DBL_MIN
最小值
DBL_MIN_10_EXP
最小10进制指数
DBL_MIN_EXP
最小2进制指数


float

FLT_DIG
float小数点后面精确的位数
FLT_EPSILON
小的正数,float的0跨度值
FLT_MANT_DLG
尾数中的位数
FLT_MAX
最大值
FLT_MAX_10_EXP
最大10进制指数
FLT_MAX_EXP
最大2进制指数
FLT_MIN
最小值
FLT_MIN_10_EXP
最小10进制指数
FLT_MIN_EXP
最小2进制指数
FLT_RADIX
进制基数
FLT_ROUNDS
加法舍入


long double

LDBL_DIG
long double小数点后面精确的位数
LDBL_EPSILON
小的正数,long double的0跨度值
LDBL_MANT_DLG
尾数中的位数
LDBL_MAX
最大值
LDBL_MAX_10_EXP
最大10进制指数
LDBL_MAX_EXP
最大2进制指数
LDBL_MIN
最小值
LDBL_MIN_10_EXP
最小10进制指数
LDBL_MIN_EXP
最小2进制指数 [2]


源文件

/* float.h
Defines implementation specific macros for dealing with
  floating point.
  */
  #ifndef __FLOAT_H
  #define __FLOAT_H
  #if !defined( __DEFS_H )
  #include <_defs.h>
  #endif
  #define FLT_RADIX      2
  #define FLT_ROUNDS     1
  #define FLT_GUARD      1
  #define FLT_NORMALIZE    1
  #define DBL_DIG       15
  #define FLT_DIG       6
  #define LDBL_DIG      19
  #define DBL_MANT_DIG    53
  #define FLT_MANT_DIG    24
  #define LDBL_MANT_DIG    64
  #define DBL_EPSILON     2.2204460492503131E-16
  #define FLT_EPSILON     1.19209290E-07F
  #define LDBL_EPSILON    1.084202172/*河蟹*/485504E-19
  /* smallest positive IEEE normal numbers */
  #define DBL_MIN       2.2250738585072014E-308
  #define FLT_MIN       1.17549435E-38F
  #define LDBL_MIN      _tiny_ldble
  #define DBL_MAX       _huge_dble
  #define FLT_MAX       _huge_flt
  #define LDBL_MAX      _huge_ldble
  #define DBL_MAX_EXP     +1024
  #define FLT_MAX_EXP     +128
  #define LDBL_MAX_EXP    +16384
  #define DBL_MAX_10_EXP   +308
  #define FLT_MAX_10_EXP   +38
  #define LDBL_MAX_10_EXP   +4932
  #define DBL_MIN_10_EXP   -307
  #define FLT_MIN_10_EXP   -37
  #define LDBL_MIN_10_EXP   -4931
  #define DBL_MIN_EXP     -1021
  #define FLT_MIN_EXP     -125
  #define LDBL_MIN_EXP    -16381
  extern float    _Cdecl _huge_flt;
  extern double    _Cdecl _huge_dble;
  extern long double _Cdecl _huge_ldble;
  extern long double _Cdecl _tiny_ldble;
  #ifdef __cplusplus
  extern "C" {
  #endif
  unsigned int _Cdecl _clear87(void);
  unsigned int _Cdecl _control87(unsigned int __newcw, unsigned int __mask);
  void     _Cdecl _fpreset(void);
  unsigned int _Cdecl _status87(void);
  #ifdef __cplusplus
  }
  #endif
  #if !__STDC__
  /* 8087/80287 Status Word format  */
  #define SW_INVALID   0x0001 /* Invalid operation      */
  #define SW_DENORMAL   0x0002 /* Denormalized operand     */
  #define SW_ZERODIVIDE  0x0004 /* Zero divide         */
  #define SW_OVERFLOW   0x0008 /* Overflow           */
  #define SW_UNDERFLOW  0x0010 /* Underflow          */
  #define SW_INEXACT   0x0020 /* Precision (Inexact result)  */
  /* 8087/80287 Control Word format */
  #define MCW_EM       0x003f /* interrupt Exception Masks*/
  #define   EM_INVALID   0x0001 /*  invalid        */
  #define   EM_DENORMAL   0x0002 /*  denormal        */
  #define   EM_ZERODIVIDE  0x0004 /*  zero divide      */
  #define   EM_OVERFLOW   0x0008 /*  overflow        */
  #define   EM_UNDERFLOW  0x0010 /*  underflow       */
  #define   EM_INEXACT   0x0020 /*  inexact (precision)  */
  #define MCW_IC       0x1000 /* Infinity Control */
  #define   IC_AFFINE    0x1000 /*  affine     */
  #define   IC_PROJECTIVE  0x0000 /*  projective   */
  #define MCW_RC     0x0c00 /* Rounding Control   */
  #define   RC_CHOP   0x0c00 /*  chop        */
  #define   RC_UP    0x0800 /*  up         */
  #define   RC_DOWN   0x0400 /*  down        */
  #define   RC_NEAR   0x0000 /*  near        */
  #define MCW_PC     0x0300 /* Precision Control  */
  #define   PC_24    0x0000 /*  24 bits      */
  #define   PC_53    0x0200 /*  53 bits      */
  #define   PC_64    0x0300 /*  64 bits      */
  /* 8087/80287 Initial Control Word */
  /* use affine infinity, mask underflow and precision exceptions */
  #define CW_DEFAULT _default87
  extern unsigned int _Cdecl _default87;
  /*
  SIGFPE signal error types (for integer & float exceptions).
  */
  #define FPE_INTOVFLOW    126 /* 80x86 Interrupt on overflow */
  #define FPE_INTDIV0     127 /* 80x86 Integer divide by zero */
  #define FPE_INVALID     129 /* 80x87 invalid operation   */
  #define FPE_ZERODIVIDE   131 /* 80x87 divide by zero     */
  #define FPE_OVERFLOW    132 /* 80x87 arithmetic overflow  */
  #define FPE_UNDERFLOW    133 /* 80x87 arithmetic underflow  */
  #define FPE_INEXACT     134 /* 80x87 precision loss     */
  #define FPE_STACKFAULT   135 /* 80x87 stack overflow     */
  #define FPE_EXPLICITGEN   140 /* When SIGFPE is raise()'d   */
  /*
  SIGSEGV signal error types.
  */
  #define SEGV_BOUND     10 /* A BOUND violation (SIGSEGV) */
  #define SEGV_EXPLICITGEN  11 /* When SIGSEGV is raise()'d  */
  /*
  SIGILL signal error types.
  */
  #define ILL_EXECUTION    20 /* Illegal operation exception */
  #define ILL_EXPLICITGEN   21 /* When SIGILL is raise()'d   */
  #endif /* !__STDC__ */
  #endif




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: