Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 474
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
Non è tutto... https://www.mql5.com/ru/forum/66827
Come faccio a conoscere il valore reale di una variabile di tipo double? Il fatto è che a volte migliaia di cifre vengono buttate fuori tramite la stampa - la variabile stessa è formata da una stringa di testo, ma passa attraverso una procedura di arrotondamento.
Ahem. A cosa ti serve?
Per rilevare un errore nel calcolo :)
Volete confrontare diversi valori di tipo doppio?
Potete per favore inviare messaggi e-mail dal terminale Metatrader 4 in modo tale che uno screenshot del grafico corrente sia preso e messo nel mezzo del messaggio. Esempio:
C'era un segnale di acquisto su EurUsd
<скриншот09122015_eurusd.png>
Ulteriori informazioni sull'apertura.
Mi dica come implementare questo? Forse c'è un esempio o qualcosa di simile che può essere rifatto. Grazie!Non proprio... c'è un presupposto che i numeri non hanno sempre un valore intero di 4=3.9999999999999999999 e dopo aver fatto i conti, si ottiene un'imprecisione dopo l'arrotondamento.
Anche se appare un'imprecisione, usate NormalizeDouble(). Imposta la precisione che vuoi per i tuoi calcoli. Ecco a cosa serve questa funzione.
L'esempio lì sembra descrivere il tuo caso:
Dovreste essere consapevoli che il numero normalizzato quando viene emesso sul Journal usando Print() può contenere più cifre decimali di quanto vi aspettate. Per esempio,
DoubleToString(a,8)=76.67100000
Print(76.671)=76.67100000000001
Anche se appare un'imprecisione, usate NormalizeDouble(). Imposta la precisione che vuoi per i tuoi calcoli. Ecco a cosa serve questa funzione.
L'esempio lì sembra descrivere il tuo caso:
Sì - è descritto, sì - lo uso - la questione è come non attraverso Print e la stringa in generale per ottenere dati per l'analisi :)
Usando lo stesso NormalizeDouble(). Si ottiene un numero di tipo doppio. Normalizzato. Semplicemente Print() lo emette in questo modo.
Qui è scritto come fare il confronto correttamente: https://www.mql5.com/ru/docs/basis/types/double