Ottenere il numero di posizioni decimali di qualsiasi numero (non solo le virgolette) bypassando Digits() in MQL4 e MQL5 - pagina 7
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
basato su un articolo sui mozzi:https://habr.com/company/xakep/blog/257897/
non proprio testato, ma sembra funzionare
basato su un articolo sui mozzi:https://habr.com/company/xakep/blog/257897/
non proprio testato, ma sembra funzionare
Se dà il risultato corretto di 0,07 allora funziona correttamente.
Se dà il risultato corretto di 0,07 allora funziona correttamente.
non funziona ((((
non funziona ((((
E nessun algoritmo funzionerà...
E nessun algoritmo funzionerà...
sarà, ma il problema è nella precisione data e nella convenienza di grandi costi di calcolo, il numero di doppia precisione può essere ricalcolato in qualsiasi formato:±sign - (1+mantissa/252) × 2 ordine- 1023
È facile estrarre la mantissa e l'ordine, ma non è interessante risolvere questo problema direttamente.
sarà, ma il problema è nella precisione data e nella convenienza di grandi costi di calcolo, il numero di doppia precisione può essere ricalcolato in qualsiasi formato:±sign - (1+mantissa/252) × 2 ordine- 1023
È facile isolare la mantissa e l'ordine, ma non è interessante risolvere questo problema di petto
Se la precisione è data, allora tutta questa storia non ha senso. Ho già fatto un esempio, 0,07 ha due cifre decimali. Ma se provate a calcolare il numero di cifre programmaticamente, otterrete tredici... E 0,07 non è il risultato di calcoli, ma è inserito manualmente, nemmeno attraverso una variabile.
C'è anche questa opzione:
Torna in te. Questa è una sciocchezza che non dovrebbe nemmeno essere discussa seriamente.
L'autore ha semplicemente una totale incomprensione del funzionamento interno delle doppie variabili.
О!
Non ho preteso di sapere tutto, meglio dirmi cosa c'è di sbagliato o mostrarmi la tua versione
Volete sapere quanti decimali sono definiti in ogni variabile di tipo double nel vostro programma. Questa è l'assurdità. Tutte le variabili di tipo double hanno la stessa rappresentazione. Sono rappresentati come Float - in virgola mobile. A volte il punto è a sinistra, a volte a destra - dipende dal valore del numero. Un milione e un milionesimo sono rappresentati con una precisione diversa.
Esiste anche una tale variante:
No, non funzionerà, l'ho fatto ieri tramite conversione di tipo, ecco lo script, il tuo esempio e il mio:
risultati:
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. DoubleToDigits() = 11
2018.11.13 01:49:16.131 tst (EURUSD,M30) 1. Cifra() = 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. Cifra() = 3
potete cercare su GoogleFP-Printing-PLDI96.pdf, ma dubito che qualcuno farà tutto secondo l'algoritmo