Funciones de redondeo

La API de MQL5 incluye varias funciones para redondear números al entero más próximo (en una u otra dirección). A pesar de la operación de redondeo, todas las funciones devuelven un número del tipo double (con la parte fraccionaria vacía).

Desde un punto de vista técnico, aceptan argumentos de cualquier tipo numérico, pero sólo se redondean los números reales, y los enteros sólo se convierten a double.

Si desea redondear a un signo específico, utilice NormalizeDouble (véase la sección Normalización de doubles).

En el archivo MathRound.mq5 se dan ejemplos de cómo trabajar con funciones.

double MathRound(numeric value) ≡ double round(numeric value)

La función redondea un número hacia arriba o hacia abajo al entero más próximo.

   PRT((MathRound(5.5)));  // 6.0
   PRT((MathRound(-5.5))); // -6.0
   PRT((MathRound(11)));   // 11.0
   PRT((MathRound(-11)));  // -11.0

Si el valor de la parte fraccionaria es mayor o igual que 0.5, la mantisa se incrementa en uno (independientemente del signo del número).

double MathCeil(numeric value) ≡ double ceil(numeric value)

double MathFloor(numeric value) ≡ double floor(numeric value)

Las funciones devuelven el valor entero mayor más cercano (para ceil) o el valor entero menor más cercano (para floor) al value transferido. Si value ya es igual a un entero (tiene una parte fraccionaria cero), se devuelve este entero.

   PRT((MathCeil(5.5)));   // 6.0
   PRT((MathCeil(-5.5)));  // -5.0
   PRT((MathFloor(5.5)));  // 5.0
   PRT((MathFloor(-5.5))); // -6.0
   PRT((MathCeil(11)));    // 11.0
   PRT((MathCeil(-11)));   // -11.0
   PRT((MathFloor(11)));   // 11.0
   PRT((MathFloor(-11)));  // -11.0