Константы числовых типов данных
Каждый простой числовой тип предназначен для определенного круга задач и позволяет оптимизировать работу mql4-программы при правильном применении. Для лучшей читаемости кода и правильной обработки результатов вычислений введены константы, которые позволяют получить информацию об ограничениях, накладываемых на тот или иной тип простых данных. 
| 
 | 
 | 
 | 
 
CHAR_MIN 
 | 
Минимальное значение, которое может быть представлено типом char 
 | 
-128 
 | 
 
CHAR_MAX 
 | 
Максимальное значение, которое может быть представлено типом char 
 | 
127 
 | 
 
UCHAR_MAX 
 | 
Максимальное значение, которое может быть представлено типом uchar 
 | 
255 
 | 
 
SHORT_MIN 
 | 
Минимальное значение, которое может быть представлено типом short 
 | 
-32768 
 | 
 
SHORT_MAX 
 | 
Максимальное значение, которое может быть представлено типом short 
 | 
32767 
 | 
 
USHORT_MAX 
 | 
Максимальное значение, которое может быть представлено типом ushort 
 | 
65535 
 | 
 
INT_MIN 
 | 
Минимальное значение, которое может быть представлено типом int 
 | 
-2147483648 
 | 
 
INT_MAX 
 | 
Максимальное значение, которое может быть представлено типом int 
 | 
2147483647 
 | 
 
UINT_MAX 
 | 
Максимальное значение, которое может быть представлено типом uint 
 | 
4294967295 
 | 
 
LONG_MIN 
 | 
Минимальное значение, которое может быть представлено типом long 
 | 
-9223372036854775808 
 | 
 
LONG_MAX 
 | 
Максимальное значение, которое может быть представлено типом long 
 | 
9223372036854775807 
 | 
 
ULONG_MAX 
 | 
Максимальное значение, которое может быть представлено типом ulong 
 | 
18446744073709551615 
 | 
 
DBL_MIN 
 | 
Минимальное положительное значение, которое может быть  представлено типом double 
 | 
2.2250738585072014e-308 
 | 
 
DBL_MAX 
 | 
Максимальное значение, которое может быть представлено типом double 
 | 
1.7976931348623158e+308 
 | 
 
DBL_EPSILON 
 | 
Наименьшее число для которого выполняется условие 1.0+DBL_EPSILON != 1.0 
 | 
2.2204460492503131e-016 
 | 
 
DBL_DIG 
 | 
Количество значимых десятичных знаков 
 | 
15 
 | 
 
DBL_MANT_DIG 
 | 
Количество битов в мантиссе 
 | 
53 
 | 
 
DBL_MAX_10_EXP 
 | 
Максимальное десятичное значение степени экспоненты 
 | 
308 
 | 
 
DBL_MAX_EXP 
 | 
Максимальное двоичное значение степени экспоненты 
 | 
1024 
 | 
 
DBL_MIN_10_EXP 
 | 
Минимальное десятичное значение степени экспоненты 
 | 
(-307) 
 | 
 
DBL_MIN_EXP 
 | 
Минимальное двоичное значение степени экспоненты 
 | 
(-1021) 
 | 
 
FLT_MIN 
 | 
Минимальное положительное значение, которое может быть  представлено типом float 
 | 
1.175494351e-38 
 | 
 
FLT_MAX 
 | 
Максимальное значение, которое может быть представлено типом float 
 | 
3.402823466e+38 
 | 
 
FLT_EPSILON 
 | 
Наименьшее число для которого выполняется условие 1.0+FLT_EPSILON != 1.0 
 | 
1.192092896e–07 
 | 
 
FLT_DIG 
 | 
Количество значимых десятичных знаков 
 | 
6 
 | 
 
FLT_MANT_DIG 
 | 
Количество битов в мантиссе 
 | 
24 
 | 
 
FLT_MAX_10_EXP 
 | 
Максимальное десятичное значение степени экспоненты 
 | 
38 
 | 
 
FLT_MAX_EXP 
 | 
Максимальное двоичное значение степени экспоненты 
 | 
128 
 | 
 
FLT_MIN_10_EXP 
 | 
Минимальное десятичное значение степени экспоненты 
 | 
-37 
 | 
 
FLT_MIN_EXP 
 | 
Минимальное двоичное значение степени экспоненты 
 | 
(-125) 
 | 
 
 
 
Пример: 
void OnStart() 
  { 
//--- выведем значения констант 
   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); 
  }  | 
 
 
 
 
     |