Ciao, come posso imparare efficacemente MQL? Non sto cercando modi facili, voglio solo capire! Sto studiando il tutorial di Kovalev, guardando video, cercando di ripetere i codici che sono prescritti in esso. Ma ci sono così tanti errori anche quando ripeto il codice dal tutorial..... . Mi è stato detto che questo sito può aiutarmi, quindi sono qui! Cosa devo fare?
Alexey Kozitsyn: Divide la stringa con il delimitatore ".".
Non è una cattiva idea...
Alexey Viktorov: Non c'è bisogno di smontare nulla. Cambialo in stringa solo per vedere il numero giusto. Non c'è bisogno di fare nulla per i calcoli.
Se volete creare problemi, riconvertite la stringa in un numero StringToDouble() e moltiplicate per _Point normalizzato al numero giusto, probabilmente _Digits
Il punto è che ho bisogno di decomporre la stringa in 3 numeri, e non posso convertirla in un numero - risulta essere un numero molto grande per la lingua.
Ecco un esempio di tale numero
long CalcY=StringToDouble("111111111111111111"); Print ("CalcY=",CalcY);
Divide la stringa con il delimitatore ".".
Non è una cattiva idea...
Non c'è bisogno di smontare nulla. Cambialo in stringa solo per vedere il numero giusto. Non c'è bisogno di fare nulla per i calcoli.
Se volete creare problemi, riconvertite la stringa in un numero StringToDouble() e moltiplicate per _Point normalizzato al numero giusto, probabilmente _Digits
Il punto è che ho bisogno di decomporre la stringa in 3 numeri, e non posso convertirla in un numero - risulta essere un numero molto grande per la lingua.
Ecco un esempio di tale numero
Print ("CalcY=",CalcY);
Stampa il numero 111111111111111104
Forse ho fretta!
Il fatto è che devi decomporre la stringa in 3 numeri, ma non puoi convertirla in un numero - risulta essere un numero molto grande per la lingua.
Ecco un esempio di tale numero
Print ("CalcY=",CalcY);
Stampa il numero 111111111111111104
Racconti...
Provate voi stessi.
Print ("CalcY=",CalcY);
long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);
double Test=CalcZ;
Print ("Test=",Test);
Provate voi stessi.
Print ("CalcY=",CalcY);
long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);
double Test=CalcZ;
Print ("Test=",Test);
Intendo "un numero troppo grande", ma anche il codice non è corretto, quindi se volete convertire da formato a formato, dovreste farlo in questo modo:
Print ("CalcY=",IntegerToString(CalcY));
Quello di cui vi lamentate non è un grande numero, ma un difetto nell'output del testo.
Voglio dire "un numero troppo grande".
Un numero troppo grande da calcolare accuratamente - altrimenti come si spiega l'errore alla fine del numero?
sopra aggiunto.
Così ho questa probrazzione - si può mettere una linea in lungo, ma ho bisogno del doppio per il calcolo delle virgole.