MQL5 API включает несколько функций для округления чисел до ближайшего целого (в ту или иную сторону). Несмотря на операцию округления, все функции возвращают число типа double (с пустой дробной частью).
С технической точки зрения они принимают аргументы любого числового типа, но округляются только вещественные, а целые числа лишь приводятся к double.
Если требуется делать округление с точностью до конкретного знака, воспользуйтесь функцией NormalizeDouble (см. раздел Нормализация чисел double).
Примеры работы с функциями приведены в файле MathRound.mq5.
double MathRound(numeric value) ≡ double round(numeric value)
Функция округляет число до ближайшего целого вверх или вниз.
PRT((MathRound(5.5))); // 6.0
|
Если значение дробной части больше или равно 0.5, мантисса увеличивается на единицу (вне зависимости от знака числа).
double MathCeil(numeric value) ≡ double ceil(numeric value)
double MathFloor(numeric value) ≡ double floor(numeric value)
Функции возвращают целое значение, ближайшее сверху (для ceil) или снизу (для floor) к переданной величине value. Если value уже равно целому числу (имеет нулевую дробную часть), возвращается оно само.
PRT((MathCeil(5.5))); // 6.0
|