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
Necessario per determinare la dimensione di un array variabile, ma viene fuori l'errore:
//---
//---
Funziona direttamente con le costanti (#define) e con un valore numerico, ma non così. Perché?
Necessario per determinare la dimensione di un array variabile, ma viene fuori l'errore:
//---
//---
Funziona direttamente con le costanti (#define) e con un valore numerico, ma non così. Perché?
tol64:
Perché?
Con le costanti (#define) e con un valore numerico, funziona direttamente, ma non così. Perché?
Perché quando si definisce con #define, il compilatore sostituisce semplicemente la macro incontrata con la voce corretta prima della compilazione. Perciò vede
che non contraddice il linguaggio MQL5.
OK. Allora mi prendo il coraggio. Così, la descrizione della funzione Print() dice che "i dati di tipo doppio sono stampati con la precisione di 16 cifre decimali dopo il punto". In effetti, si scopre che la funzione Print() produce dei dati un po' arrotondati:
MP 0 victorg2 (EURUSD,M1) 11:04:42 Print(DoubleToString(b,16))=199.999999999999999716
Il punto è che un numero reale è memorizzato con non più di 17 cifre significative.
Provate questo esempio per sentire la differenza:
La descrizione nella guida sarà corretta.Con le costanti, è un array statico, e con una variabile, è dinamico. E la dimensione di una dinamica è determinata usando ArrayResize.
La seconda dimensione e quelle successive hanno una dimensione fissa. Può essere impostato solo da una costante.
Perché quando è definito con #define, il compilatore sostituisce semplicemente la macro incontrata con la voce corretta prima della compilazione. Perciò vede
che non contraddice il linguaggio MQL5.
Grazie. Potete dirmi cosa si può fare se la dimensione di un array sia nella prima che nella seconda dimensione è determinata da calcoli e non può essere una costante? Con ArrayResize(), potete cambiare solo la dimensione della prima dimensione. E perché si può ridimensionare un array usando una variabile, mentre non può essere impostato inizialmente?
Grazie. Potete dirmi cosa si può fare se la dimensione di un array sia nella prima che nella seconda dimensione è determinata da calcoli e non può essere una costante? Con ArrayResize(), potete cambiare solo la dimensione della prima dimensione. E perché posso ridimensionare un array applicando un valore variabile, mentre non può essere impostato inizialmente?