跳至内容

Numerical Type Constants

数值类型常量

每种简单的数值类型都适用于特定类型的任务,并且当正确使用时可以优化mql4程序的运行。为了提高代码的可读性并正确处理计算结果,有一些常量可以获取关于某种简单数据类型所设置的限制的信息。

常量描述
CHAR_MINchar类型能表示的最小值-128
CHAR_MAXchar类型能表示的最大值127
UCHAR_MAXuchar类型能表示的最大值255
SHORT_MINshort类型能表示的最小值-32768
SHORT_MAXshort类型能表示的最大值32767
USHORT_MAXushort类型能表示的最大值65535
INT_MINint类型能表示的最小值-2147483648
INT_MAXint类型能表示的最大值2147483647
UINT_MAXuint类型能表示的最大值4294967295
LONG_MINlong类型能表示的最小值-9223372036854775808
LONG_MAXlong类型能表示的最大值9223372036854775807
ULONG_MAXulong类型能表示的最大值18446744073709551615
DBL_MINdouble类型能表示的最小正值2.2250738585072014e-308
DBL_MAXdouble类型能表示的最大值1.7976931348623158e+308
DBL_EPSILON满足以下条件的最小值:
1.0+DBL_EPSILON != 1.0(对于double类型)
2.2204460492503131e-016
DBL_DIGdouble类型的有效小数位数15
DBL_MANT_DIGdouble类型的尾数位数53
DBL_MAX_10_EXPdouble类型的指数度数的最大十进制值308
DBL_MAX_EXPdouble类型的指数度的最大二进制值1024
DBL_MIN_10_EXPdouble类型的指数度数的最小十进制值(-307)
DBL_MIN_EXPdouble类型的指数度数的最小二进制值(-1021)
FLT_MINfloat类型能表示的最小正值1.175494351e-38
FLT_MAXfloat类型能表示的最大值3.402823466e+38
FLT_EPSILON满足以下条件的最小值:
1.0+DBL_EPSILON != 1.0(对于float类型)
1.192092896e–07
FLT_DIGfloat类型的有效小数位数6
FLT_MANT_DIGfloat类型的尾数位数24
FLT_MAX_10_EXPfloat类型的指数度数的最大十进制值38
FLT_MAX_EXPfloat类型的指数度的最大二进制值128
FLT_MIN_10_EXPfloat类型的指数度数的最小十进制值-37
FLT_MIN_EXPfloat类型的指数度数的最小二进制值(-125)

示例:

void OnStart()
  {
//--- print the constant values
   printf("CHAR_MIN = %d",CHAR_MIN);
   printf("CHAR_MAX = %d",CHAR_MAX);
   printf("UCHAR_MAX = %d",UCHAR_MAX);
   printf("SHORT_MIN = %d",SHORT_MIN);
   printf("SHORT_MAX = %d",SHORT_MAX);
   printf("USHORT_MAX = %d",USHORT_MAX);
   printf("INT_MIN = %d",INT_MIN);
   printf("INT_MAX = %d",INT_MAX);
   printf("UINT_MAX = %u",UINT_MAX);
   printf("LONG_MIN = %I64d",LONG_MIN);
   printf("LONG_MAX = %I64d",LONG_MAX);
   printf("ULONG_MAX = %I64u",ULONG_MAX);
   printf("EMPTY_VALUE = %.16e",EMPTY_VALUE);
   printf("DBL_MIN = %.16e",DBL_MIN);
   printf("DBL_MAX = %.16e",DBL_MAX);
   printf("DBL_EPSILON = %.16e",DBL_EPSILON);
   printf("DBL_DIG = %d",DBL_DIG);
   printf("DBL_MANT_DIG = %d",DBL_MANT_DIG);
   printf("DBL_MAX_10_EXP =  %d",DBL_MAX_10_EXP);
   printf("DBL_MAX_EXP = %d",DBL_MAX_EXP);
   printf("DBL_MIN_10_EXP = %d",DBL_MIN_10_EXP);
   printf("DBL_MIN_EXP = %d",DBL_MIN_EXP);
   printf("FLT_MIN = %.8e",FLT_MIN);
   printf("FLT_MAX = %.8e",FLT_MAX);
   printf("FLT_EPSILON = %.8e",FLT_EPSILON);
  }
最后更新于