Obtener el número de decimales de cualquier número (no sólo las comillas) evitando Digits() en MQL4 y MQL5 - página 5
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Necesitas uno
para que
el resultado fue: 4
¿Exactamente cuatro? Hagámoslo.
Tal vez esa sea exactamente la función que necesita. Contestación al TC
Precisamente necesita una función de este tipo, porque (como has señalado correctamente) no todos los números pueden representarse exactamente como dobles, lo que significa que resolver el problema sin especificar la precisión no tiene sentido (porque en el caso general conduce a resultados absurdos).
Necesita exactamente eso, porque (como has señalado correctamente) no todos los números pueden representarse con precisión como un doble, lo que significa que resolver el problema sin especificar la precisión no tiene sentido (porque en general conduce a resultados absurdos).
¿Cuáles son las opciones para especificar la precisión sin cambiar el número de decimales, o cómo puedo eliminar la desventaja que describí en mi versión? En mi caso, sólo he encontrado el valor (de la cadena)
¿Cuáles son las opciones para especificar la precisión sin cambiar el número de decimales, o cómo puedo eliminar la desventaja que describí en mi versión? En mi caso, sólo he encontrado el valor (de la cadena)
Supongo que te refieres a dentro de qué límites buscar el último no cero.
Traté de hacer un cálculo del número de decimales a través de MathMod() con un divisor consecutivo 0,1, a continuación, 0,01 ... 0,000(15 ceros) 1, no funcionó, la exactitud del número mantiene "flotante" necesidad de normalizar cada vez, y si se utiliza la normalización, entonces es más fácil de comparar el número que desea y normalizado a lo que signo - si es diferente, entonces encontró el último signo
HH: hay otra opción, no tenía tiempo para comprobar - multiplicar un número real sin una parte entera de 10 ^ 16 y guardar todo en largo, y luego dividir por 10 y comprobar el resto de la división, si = 0, entonces de nuevo dividir
ZS: hay otra opción, no he tenido tiempo de comprobarlo - multiplicar un número real sin parte entera por 10^16 y guardarlo todo en long, y luego dividir por 10 y comprobar el resto de la división, si = 0, entonces dividir de nuevo
No funcionará.
Utilizarel doblePunto()
También probado, no hay manera.
Eso es todo.
da este resultado
También probado, no funciona.