Округление действительных чисел

 
У меня вопрос к разработчикам: Почему функции MathCeil() MathFloor() и MathRound(), которые по смыслу должны возвращать числа целого типа, у вас возращают числа типа double ?
Документация по MQL5: Математические функции / MathCeil
Документация по MQL5: Математические функции / MathCeil
  • www.mql5.com
Математические функции / MathCeil - Документация по MQL5
 

Потому что соответствующие crt-функции (c run time library) возвращают данные типа double. Мы просто транслируем вызов в crt.

 
stringo:

Потому что соответствующие crt-функции (c run time library) возвращают данные типа double. Мы просто транслируем вызов в crt.

что в таком случае делать с предупреждениями о возможной потере данных при конвертации?

int number = MathRound(1.1);
 

указать компилятору явно

int number=(int) MathRound(1.1);

 
А нельзя сделать так что бы все эти функции вовращали целые числа. Для простого трайдера было бы понятнее и логичнее! Я как понимаю, вы так сделали из -за того, что так вам удобнее....
 

вот Вам решение

int MathRoundI(double x) { return((int)MathRound(x)); }



Компилятор "заинлайнит" данную функцию и потери в производительности не будет

Причина обращения: