Округление чисел в МТ4 через NormalizeDouble - страница 12

 
lilita bogachkova:
Ну тогда надо писать в сервисдеск , что они там такую лишнюю функцию MathCeil() придумали :)
Она просто другая, да и мне особо не мешает :)
 
Алексей Тарабанов:
int A = double B + 0.5 
Он прав насчет: "Сначала к дробному числу добавляется 0.5, а после от результата отсекается дробная часть и остается результат округления до целого.", но MQ нам дали MathCeil() чтобы не заморачиваться, и MathCeil() возвращает ближайшее сверху целое числовое значение а не округляет 
void OnStart()
  {
   ushort  Characters_delete=14;
   for(int i=0;i<=Characters_delete;i++)
     {
      double v1=i+0.999999999999999;

      int v2=v1+0.5;
      Print("v1 = ",i," = ",DoubleToString(v2,2));
     }
  }
 
Vasyl Nosal:
Тогда 5
Чего 5? При нормализации такого числа все 9-ки превращаются в нули, поэтому нормализовать, а потом отбросить будет давать неправильные результаты.
 
lilita bogachkova:
Он прав насчет: "Сначала к дробному числу добавляется 0.5, а после от результата отсекается дробная часть и остается результат округления до целого.", но MQ нам дали MathCeil() чтобы не заморачиваться.
Спасибо, Солнышко, но MathCeil работает только с double: как на входе, так и на выходе :) 
 
Алексей Тарабанов:
Спасибо, Солнышко, но MathCeil работает только с double: как на входе, так и на выходе :) 
 решается: int A = (int)MathCeil(double B);
 
lilita bogachkova:
 решается: int A = (int)MathCeil(double B);
Извини: int A = (int)MathCeil(double B+0.5)
 
Алексей Тарабанов:
Извини: int A = (int)MathCeil(double B+0.5)
Не а: решается: int A = (int)MathCeil(double B);
 
lilita bogachkova:
Не а: решается: int A = (int)MathCeil(double B);
пробуй: int A = MathCeil(2.6)
 
Алексей Тарабанов:
пробуй: int A = MathCeil(2.4)

int A = MathCeil(2.4)=3

int A = MathCeil(2.4+0.5) =3

но  

int A = MathCeil(2.6+0.5) =4 

int A = MathCeil(2.6) =3  

 
lilita bogachkova:

int A = MathCeil(2.4)=3

int A = MathCeil(2.4+0.5) =3

но  

int A = MathCeil(2.6+0.5) =4 

Бес попутал... 2.6, конечно. Цифры странные... 
Причина обращения: