Мат.функции возвращают double вместо int?

 
Почему такие функции как MathCeil и MathFloor (и другие) возвращают double?
Очень неудобно при попытке обращения к значению Open или Close по вычисляемому индексу.
Поскольку приходится писать еще пару функцию StrToInt(DoubleToStr())
 
не проще ли
int ceil=MathSeil(variable);
 
Я тоже с такой байдой столкнулся.
Мыслится не совсем логично - данные функции в принципе то возвращают ЦЕЛОЕ значение, а тип ему присваивают - double !
Вот и извращайся потом... :(
Причина обращения: