Các hàm làm tròn
API MQL5 bao gồm một số hàm để làm tròn số đến số nguyên gần nhất (theo một hướng hoặc hướng khác). Mặc dù thực hiện thao tác làm tròn, tất cả các hàm đều trả về một số thuộc kiểu double
(với phần thập phân rỗng).
Từ góc độ kỹ thuật, chúng chấp nhận đối số của bất kỳ kiểu số nào, nhưng chỉ các số thực được làm tròn, còn các số nguyên chỉ được chuyển đổi thành double
.
Nếu bạn muốn làm tròn đến một chữ số cụ thể, hãy sử dụng NormalizeDouble
(xem phần Chuẩn hóa số double).
Ví dụ về cách làm việc với các hàm được đưa ra trong tệp MathRound.mq5
.
double MathRound(numeric value) ≡ double round(numeric value)
Hàm này làm tròn một số lên hoặc xuống đến số nguyên gần nhất.
PRT((MathRound(5.5))); // 6.0
PRT((MathRound(-5.5))); // -6.0
PRT((MathRound(11))); // 11.0
PRT((MathRound(-11))); // -11.0
2
3
4
Nếu giá trị của phần thập phân lớn hơn hoặc bằng 0.5, phần định trị sẽ được tăng thêm một (bất kể dấu của số).
double MathCeil(numeric value) ≡ double ceil(numeric value)
Các hàm này trả về giá trị số nguyên gần nhất lớn hơn (đối với ceil
) hoặc giá trị số nguyên gần nhất nhỏ hơn (đối với floor
) so với value
được truyền vào. Nếu value
đã bằng một số nguyên (có phần thập phân bằng không), thì số nguyên này được trả về.
PRT((MathCeil(5.5))); // 6.0
PRT((MathCeil(-5.5))); // -5.0
PRT((MathFloor(5.5))); // 5.0
PRT((MathFloor(-5.5))); // -6.0
PRT((MathCeil(11))); // 11.0
PRT((MathCeil(-11))); // -11.0
PRT((MathFloor(11))); // 11.0
PRT((MathFloor(-11))); // -11.0
2
3
4
5
6
7
8