Redondear números en MT4 mediante NormalizeDouble - página 12

 
lilita bogachkova:
Entonces deberías escribir al Servicio de Atención al Cliente que han inventado una función extra comoMathCeil():)
Simplemente es diferente, y no me molesta mucho :)
 
Алексей Тарабанов:
int A = double B + 0,5
Tiene razón:"Primero se suma 0,5 al número fraccionario y luego se corta laparte fraccionaria y se redondea el resultado a entero", pero MQ nos dioMathCeil() para ahorrarnos la molestia,yMathCeil()devuelve el siguiente valor entero más alto , no redondea
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:
Cinco, entonces.
¿Qué es el 5? La normalización de este número convierte todos los 9 en ceros, por lo que normalizar y luego descartar dará resultados erróneos.
 
lilita bogachkova:
Tiene razón: "Primero se suma 0,5 al número fraccionario, y luego se cortala parte fraccionariadel resultado y se redondea el resultado a entero", pero MQ nos dioMathCeil() para que no tengamos que molestarnos.
Gracias, Sunny, pero MathCeil sólo funciona con doble: tanto de entrada como de salida :)
 
Алексей Тарабанов:
Gracias, Sunny, pero MathCeil sólo funciona con doble: tanto de entrada como de salida :)
resuelto: int A = (int)MathCeil(double B);
 
lilita bogachkova:
se resuelve: int A = (int)MathCeil(double B);
Perdón:int A =(int)MathCeil(double B+0.5)
 
Алексей Тарабанов:
Perdón:int A =(int)MathCeil(double B+0.5)
No a:resuelto: int A =(int)MathCeil(double B);
 
lilita bogachkova:
No a:resuelto: int A =(int)MathCeil(double B);
prueba: int A = MathCeil(2.6)
 
Алексей Тарабанов:
prueba: int A = MathCeil(2.4)

int A = MathCeil(2.4)=3

int A = MathCeil(2.4+0.5) =3

pero

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

pero

int A = MathCeil(2.6+0.5) =4

El diablo está confundido... 2,6, por supuesto. Los números son extraños...