Hằng Số Kiểu Số
Mỗi kiểu số đơn giản được thiết kế cho một loại nhiệm vụ nhất định và cho phép tối ưu hóa hoạt động của chương trình MQL5 khi được sử dụng đúng cách. Để cải thiện khả năng đọc mã và xử lý chính xác kết quả tính toán, có các hằng số cho phép nhận thông tin về các giới hạn được đặt cho một kiểu dữ liệu đơn giản nhất định.
Hằng số | Mô tả | Giá trị |
---|---|---|
CHAR_MIN | Giá trị tối thiểu có thể được biểu diễn bởi kiểu char | -128 |
CHAR_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu char | 127 |
UCHAR_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu uchar | 255 |
SHORT_MIN | Giá trị tối thiểu có thể được biểu diễn bởi kiểu short | -32768 |
SHORT_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu short | 32767 |
USHORT_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu ushort | 65535 |
INT_MIN | Giá trị tối thiểu có thể được biểu diễn bởi kiểu int | -2147483648 |
INT_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu int | 2147483647 |
UINT_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu uint | 4294967295 |
LONG_MIN | Giá trị tối thiểu có thể được biểu diễn bởi kiểu long | -9223372036854775808 |
LONG_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu long | 9223372036854775807 |
ULONG_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu ulong | 18446744073709551615 |
DBL_MIN | Giá trị dương tối thiểu có thể được biểu diễn bởi kiểu double | 2.2250738585072014e-308 |
DBL_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu double | 1.7976931348623158e+308 |
DBL_EPSILON | Giá trị tối thiểu thỏa mãn điều kiện: 1.0 + DBL_EPSILON != 1.0 (đối với kiểu double ) | 2.2204460492503131e-016 |
DBL_DIG | Số chữ số thập phân có nghĩa cho kiểu double | 15 |
DBL_MANT_DIG | Số bit trong phần định trị cho kiểu double | 53 |
DBL_MAX_10_EXP | Giá trị thập phân tối đa của bậc lũy thừa cho kiểu double | 308 |
DBL_MAX_EXP | Giá trị nhị phân tối đa của bậc lũy thừa cho kiểu double | 1024 |
DBL_MIN_10_EXP | Giá trị thập phân tối thiểu của bậc lũy thừa cho kiểu double | -307 |
DBL_MIN_EXP | Giá trị nhị phân tối thiểu của bậc lũy thừa cho kiểu double | -1021 |
FLT_MIN | Giá trị dương tối thiểu có thể được biểu diễn bởi kiểu float | 1.175494351e-38 |
FLT_MAX | Giá trị tối đa có thể được biểu diễn bởi kiểu float | 3.402823466e+38 |
FLT_EPSILON | Giá trị tối thiểu thỏa mãn điều kiện: 1.0 + DBL_EPSILON != 1.0 (đối với kiểu float ) | 1.192092896e-07 |
FLT_DIG | Số chữ số thập phân có nghĩa cho kiểu float | 6 |
FLT_MANT_DIG | Số bit trong phần định trị cho kiểu float | 24 |
FLT_MAX_10_EXP | Giá trị thập phân tối đa của bậc lũy thừa cho kiểu float | 38 |
FLT_MAX_EXP | Giá trị nhị phân tối đa của bậc lũy thừa cho kiểu float | 128 |
FLT_MIN_10_EXP | Giá trị thập phân tối thiểu của bậc lũy thừa cho kiểu float | -37 |
FLT_MIN_EXP | Giá trị nhị phân tối thiểu của bậc lũy thừa cho kiểu float | -125 |
Ví dụ:
cpp
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);
/*
CHAR_MIN = -128
CHAR_MAX = 127
UCHAR_MAX = 255
SHORT_MIN = -32768
SHORT_MAX = 32767
USHORT_MAX = 65535
INT_MIN = -2147483648
INT_MAX = 2147483647
UINT_MAX = 4294967295
LONG_MIN = -9223372036854775808
LONG_MAX = 9223372036854775807
ULONG_MAX = 18446744073709551615
EMPTY_VALUE = 1.7976931348623157e+308
DBL_MIN = 2.2250738585072014e-308
DBL_MAX = 1.7976931348623157e+308
DBL_EPSILON = 2.2204460492503131e-16
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 = 1.17549435e-38
FLT_MAX = 3.40282347e+38
FLT_EPSILON = 1.19209290e-07
*/
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56