Obtener el número de decimales de cualquier número (no sólo las comillas) evitando Digits() en MQL4 y MQL5 - página 7
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
basado en un artículo de los hubs:https://habr.com/company/xakep/blog/257897/
no se ha probado, pero parece que funciona
basado en un artículo de los hubs:https://habr.com/company/xakep/blog/257897/
no se ha probado, pero parece que funciona
Si da un resultado correcto de 0,07 entonces funciona correctamente.
Si da el resultado correcto de 0,07 entonces funciona correctamente.
no funciona ((((
no funciona ((((
Y ningún algoritmo funcionará...
Y ningún algoritmo funcionará...
será, pero el problema está en la precisión dada y en la conveniencia de los grandes costes computacionales, el número de doble precisión puede ser recalculado en cualquier formato:±signo - (1+mantisa/252) × 2 orden- 1023
Es fácil extraer la mantisa y el orden, pero no es interesante resolver este problema directamente.
será, pero el problema está en la precisión dada y en la conveniencia de los grandes costes computacionales, el número de doble precisión puede ser recalculado en cualquier formato:±signo - (1+mantisa/252) × 2 orden- 1023
Es fácil aislar la mantisa y el orden, pero no es interesante resolver este problema de frente
Si se da la precisión, entonces todo esto no tiene sentido. Ya di un ejemplo, 0,07 tiene dos decimales. Pero si intentas calcular el número de dígitos mediante programación, obtendrás trece... Y 0,07 no es el resultado de los cálculos, sino que se introduce manualmente, ni siquiera a través de una variable.
También existe esta opción:
Vuelve a tus cabales. Esto es una tontería que ni siquiera debería discutirse seriamente.
El autor simplemente tiene una total incomprensión del funcionamiento interno de las variables dobles.
¡О!
No he pretendido saberlo todo, mejor dime qué es lo que falla o enséñame tu versión
Quieres saber cuántos decimales tiene definida cada variable de tipo double en tu programa. Esto es un disparate. Todas las variables de tipo double tienen la misma representación. Se representan como Float - punto flotante. A veces el punto está a la izquierda, a veces a la derecha - depende del valor del número. Un millón y una millonésima se representan con diferente precisión.
También existe esta variante:
No, no funcionará, lo hice ayer mediante conversión de tipo, aquí está el script, tu ejemplo y el mío:
resultados:
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. DoubleToDigits() = 11
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. Dígito() = 0
2018.11.13 01:49:16.131 tst (EURUSD,M30) 2. DoubleToDigits() = 3
2018.11.13 01:49:16.131 tst (EURUSD,M30) 2. Dígito() = 3
puedes buscar en googleFP-Printing-PLDI96.pdf, pero dudo que alguien haga todo según el algoritmo