Giá trị lớn nhất và nhỏ nhất của hai số
Để tìm số lớn nhất hoặc nhỏ nhất trong hai số, MQL5 cung cấp các hàm MathMax
và MathMin
. Tên rút gọn tương ứng của chúng là fmax
và fmin
.
numeric MathMax(numeric value1, numeric value2) ≡ numeric fmax(numeric value1, numeric value2)
Các hàm này trả về giá trị lớn nhất hoặc nhỏ nhất của hai giá trị được truyền vào. Các hàm được nạp chồng cho tất cả các kiểu tích hợp sẵn.
Nếu các tham số thuộc các kiểu khác nhau được truyền vào hàm, thì tham số của kiểu "thấp hơn" sẽ tự động được chuyển đổi thành kiểu "cao hơn", ví dụ, trong cặp kiểu int
và double
, int
sẽ được chuyển thành double
. Để biết thêm thông tin về ép kiểu ngầm, xem phần Chuyển đổi kiểu số học. Kiểu trả về tương ứng với kiểu "cao nhất".
Khi có tham số kiểu string
, nó sẽ là "cao nhất", tức là mọi thứ được quy về chuỗi. Các chuỗi sẽ được so sánh theo thứ tự từ vựng, như trong hàm StringCompare
.
Script MathMaxMin.mq5
thể hiện các hàm này trong thực tế.
void OnStart()
{
int i = 10, j = 11;
double x = 5.5, y = -5.5;
string s = "abc";
// số
PRT(MathMax(i, j)); // 11
PRT(MathMax(i, x)); // 10
PRT(MathMax(x, y)); // 5.5
PRT(MathMax(i, s)); // abc
// chuyển đổi kiểu
PRT(typename(MathMax(i, j))); // int, giữ nguyên
PRT(typename(MathMax(i, x))); // double
PRT(typename(MathMax(i, s))); // string
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17