¿Es posible obtener un valor "exacto"? - página 6

 
abolk:

Para resolver este problema, 0,09*5 tiene que ser =0,45, no =0,449999999999999

y si no existe, el problema es irresoluble.

0.09*5=0.45 )

¿no sabes contar?)

 
sanyooooook:

0.09*5=0.45 )

No sabes contar, ¿verdad?)

Así es, di un ejemplo que cuenta 0,44 en lugar de 0,45 por "su" trabajo en MQL. No estoy familiarizado con el lenguaje, pero es extraño, por qué un número grande se recorta, quiero decir por qué, cuando supera el límite, se redondea pero no se recorta. Sería estupendo que el método de "recorte exacto de cuerdas", tal vez el que he citado anteriormente, estuviera en MQL para su uso. :)
 
WePlexus:
Así es, el ejemplo se dio que cuenta 0,44 en lugar de 0,45 debido a la forma en que funciona MQL. No conozco el lenguaje a fondo, pero es raro por qué un número grande se recorta, es decir, por qué cuando el número supera el límite, se redondea en lugar de recortarse. Sería estupendo que el método de "recorte exacto de cuerdas", tal vez el que he citado anteriormente, estuviera en MQL para su uso. :)
porque es habitual en matemáticas que si se quiere eliminar el número de decimales, se redondee el valor.
 
sanyooooook:
porque es habitual en matemáticas que si se quiere eliminar el número de decimales, se redondee el valor.
miudro
 
Gracias por su ayuda.
 
siempre
 
WePlexus:
No conozco el lenguaje a fondo, pero es raro por qué un número grande se recorta, es decir, por qué cuando el número supera el límite, se redondea en lugar de recortarse. Sería estupendo que el método de "recorte exacto de la cuerda", tal vez el que he citado anteriormente, estuviera en MQL para su uso. :)
Así entendí la utilidad del "recorte exacto". Bueno, aparte de una sensación de satisfacción y legítimo orgullo por un problema resuelto :).
 
Redondear es más fácil
 
abolk:

es el número máximo al que se produce la normalización:

Si tomas un 9 más, se normaliza a 0,02.

Pero mi función hace el trabajo:

Normalize ("0.01999999999999999999999999999999", 6)

La salida es de 0,019999. Entonces puedes convertir el número al tipo correcto y hacer cálculos con él.

Si pasa un número a la función sin comillas, el resultado será 0,02.

 
WePlexus:

Hay varias formas de resolver el problema, cada una de ellas con sus ventajas e inconvenientes, en cuanto a la precisión y la rapidez con la que se obtiene el resultado.

Trabajar con números flotantes tiene sus propias peculiaridades -- hay que entenderlas -- y para entender estas peculiaridades + para su problema -- hay que buscar una solución.