Phần dư sau phép chia (Phép toán Modulo)
Để chia các số nguyên và lấy phần dư, MQL5 có toán tử modulo tích hợp sẵn %
, được mô tả trong phần Phép toán số học. Tuy nhiên, toán tử này không áp dụng được cho các số thực. Trong trường hợp số bị chia, số chia, hoặc cả hai toán hạng là số thực, bạn nên sử dụng hàm MathMod
(hoặc dạng ngắn fmod
).
double MathMod(double dividend, double divider) ≡ double fmod(double dividend, double divider)
Hàm này trả về phần dư thực sau khi chia số đầu tiên được truyền vào (dividend
) cho số thứ hai (divider
).
Nếu bất kỳ đối số nào là âm, dấu của kết quả được xác định theo các quy tắc được mô tả trong phần trên.
Ví dụ về cách hoạt động của hàm có sẵn trong script MathMod.mq5
.
cpp
PRT(MathMod(10.0, 3)); // 1.0
PRT(MathMod(10.0, 3.5)); // 3.0
PRT(MathMod(10.0, 3.49)); // 3.02
PRT(MathMod(10.0, M_PI)); // 0.5752220392306207
PRT(MathMod(10.0, -1.5)); // 1.0, dấu bị loại bỏ
PRT(MathMod(-10.0, -1.5)); // -1.0
1
2
3
4
5
6
2
3
4
5
6