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

 
Dmitry Fedoseev:

Aquí está su código:

Poner 3 en lugar de 2 y es 0,036

¡Funcionó! Gracias. Normalizo a 3 y luego recorto los dígitos extra después del punto decimal.

¿Puede decirme si existe una función estándar para recortar los dígitos H después de la coma? Como StringSubStr sólo si es un número fraccionario.

 
Roman Starinskij:

¡Así es como funciona! Gracias. Normalizo a 3 dígitos y luego recorto los dígitos extra después del punto decimal.

¿Puede decirme si existe una función estándar para recortar los dígitos H después del punto decimal? Como StringSubStr sólo si es un número fraccionario.

Si desea recortar los dígitos al mostrarlos en la pantalla (log), existe DoubleToString() para ello.
 
Ihor Herasko:
Si te refieres a recortar los dígitos cuando se envían a la pantalla (log), entonces DoubleToString() es para eso.

No. DoubleToString funciona igual que NormalizeDouble().

 
Roman Starinskij:

¡Así es como funciona! Gracias. Normalizo a 3 dígitos y luego recorto los dígitos extra después del punto decimal.

¿Puede decirme si existe una función estándar para recortar los dígitos H después del punto decimal? Como StringSubStr sólo si es un número fraccionario.

No existe esta función, ya que no es necesaria. Tu calculadora está mal.
 
Roman Starinskij:

¿Puede decirme si existe una función estándar para truncar los dígitos H después del punto decimal? Como StringSubStr sólo si es un número fraccionario.

Yo uso uno, pero es "no estándar":

//+------------------------------------------------------------------+
//| Double Crop function                                             |
//+------------------------------------------------------------------+
double DoubleCrop(double value,int crop)
  {
   string ValueToString="";
   ValueToString=DoubleToString(value,crop);
   return StringToDouble(ValueToString);
  }
//+------------------------------------------------------------------+
 
lilita bogachkova:

Yo uso uno, pero es "personalizado":

¿Cuál es la jugada genial?

string ValueToString="";
   ValueToString=DoubleToString(value,crop);
 
lilita bogachkova:

Yo uso uno, pero es "fuera de la caja":

Acabo de escribir, DoubleToString no recorta, funciona de la misma manera que NormalizeDouble - redondea. No... estamos en una excavadora.
 

Se detecta un fallo:

   Alert(
         DoubleToStr(1.15,1)+" "+
         DoubleToStr(1.25,1)+" "+
         DoubleToStr(1.35,1)+" "+
         DoubleToStr(1.45,1)
         );

Resultado: 1,1 1,3 1,4 1,5

Con 1,15 hubo un descarte y con los números de acero hubo un redondeo.

 
Dmitry Fedoseev:

Se detecta un fallo:

Resultado: 1,1 1,3 1,4 1,5

Con 1,15 hubo un descarte y con los números de acero hubo un redondeo.

Sí, debo admitir que lo usé sin comprobar el resultado :(((
 

Hasta que los desarrolladores eliminen

it

StringLen

El número de caracteres de la cadena, sin incluir el cero final.

no hay nada que puedas hacer sobre el truncamiento.