Hola a todos. Os comento. Estoy realizando un indicador que, entre otras cosas, tiene que mostrar en Excel el valor de la función de Visual Chart .Open(0, Data1). A dicha función, le tengo asignada una variable de tipo Single. El caso es que, al trabajar con el futuro del Bobl (Eurex), el cual tiene dos decimales, en vez de ponerme en Excel el valor, por ejemplo 124,71, que es el que aparece en el gráfico de Visual Chart, me muestra en Excel el valor 124,709999084472.
¿A qué es debido esta imprecisión, si tan sólo tendría que aparecer el número con dos decimales?
Saludos y gracias de antemano.
Sobre Excel, Visual Chart y la precisión numérica
Re: Sobre Excel, Visual Chart y la precisión numérica
Acabo de comprobar que el asunto no guarda relación con Excel, ya que haciendo:
MsgBox .Open(0, Data1)
me sale la ventanita con el mismo número, el cual posee más decimales del que tiene el valor realmente. Como ya indiqué, por ejemplo, en el futuro del Bobl (Eurex), el cual tiene tan sólo dos decimales, me salen en dicha ventanita muchos más.
¿A qué es posible esto?
Gracias de antemano.
MsgBox .Open(0, Data1)
me sale la ventanita con el mismo número, el cual posee más decimales del que tiene el valor realmente. Como ya indiqué, por ejemplo, en el futuro del Bobl (Eurex), el cual tiene tan sólo dos decimales, me salen en dicha ventanita muchos más.
¿A qué es posible esto?
Gracias de antemano.
Re: Sobre Excel, Visual Chart y la precisión numérica
En metatrader pasa algo similar, y creo que lo solucione con la funcion NormalizeDouble( double value, int digits)
double NormalizeDouble( double value, int digits), sera parecido en visualchart
http://docs.mql4.com/convert/NormalizeDouble
double NormalizeDouble( double value, int digits), sera parecido en visualchart
http://docs.mql4.com/convert/NormalizeDouble
Rounds the floating point value to the given precision. Returns normalized value of the double type.
The calculated StopLoss and TakeProfit values, as well as open price of pending orders must be normalized with a precision the value of which is stored in the pre-defined variable of Digits.
Parameters:
value - Floating point value.
digits - Precision format, number of digits after decimal point (0-8).
Sample:
double var1=0.123456789;
Print(DoubleToStr(NormalizeDouble(var1,5),8));
// output: 0.12346000
Re: Sobre Excel, Visual Chart y la precisión numérica
Gracias por la ayuda. En Visual Basic existe la función "Format", pero te convierte el resultado a una variable de tipo "Variant". Desconozco si hay alguna otra función más específica para expresiones numéricas.
Saludos
Saludos
Si te ha gustado este hilo del Foro, ¡compártelo en redes!