Germany | Finland | Saint Petersburg | Drive

Floor_To_Step()

Опубликовано в QPILE

Еще одна постоянно нужная функция, которая округляет число до шага цены в сторону уменьшения. Например, у фьючерса на индекс РТС этот шаг равен 5 и все значения, передаваемые в транзакциях, необходимо соответствующим образом округлять. Я использую эту функцию очень часто в совершенно различных ситуациях.

' Округление первого параметра до ближайшего кратного шагy (второй параметр) вниз

FUNC Floor_To_Step(result,rts_step)
if 0+rts_step == 0
            result = Floor(result)
else
            result = Floor(result / rts_step) * rts_step
end if
END FUNC

Вариант для макропроцессора M4: 

define(`Floor_To_Step',`(Floor($1 / $2) * $2)')

Эта функция округляет всегда в меньшую сторону. Для округления в бOльшую сторону можно использовать Ceil_To_Step(), а до ближайшего кратному шагу - функцию Round_To_Step().

Добавить комментарий