Si noti che il numero normalizzato quando viene emesso nel registro usando Print() può contenere più cifre decimali di quanto ci si aspetti. Per esempio,
Vladislav Andruschenko: Beh, per me va bene. Questa è la parte difficile.
Stai facendo conversioni inutili che ti fanno perdere segni.
Normalizza solo prima di usare direttamente i risultati dei tuoi calcoli. Evitare il più possibile tutte le conversioni di numeri e le conversioni in anticipo.
Andrey Dik: State facendo conversioni inutili che causano la perdita di caratteri.
Questi sono già codici disperati..... L'ho fatto in modi diversi. Ma come detto sopra. Probabilmente a causa dell'errata presa stavo peccando sull'errore. Anche se anche queste variabili sono state glitchate nel codice.
Grazie a tutti per il vostro aiuto e i vostri suggerimenti. Ma tutto funziona chiaramente con il galleggiante.
Vladislav Andruschenko: È già un codice disperato..... L'ho fatto in modi diversi. Ma come detto sopra. Probabilmente a causa di accettare erroneamente che stavo peccando un errore. Anche se anche queste variabili sono state glitchate nel codice.
Grazie a tutti per il vostro aiuto e i vostri suggerimenti. Ma tutto funziona chiaramente con il galleggiante.
Float è una castrazione del numero che non dà alcun vantaggio. È meglio affrontare tutte le perdite nelle conversioni e usare la massima precisione possibile - il doppio.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
perchéhttps://www.mql5.com/ru/docs/convert/normalizedouble
Si noti che il numero normalizzato quando viene emesso nel registro usando Print() può contenere più cifre decimali di quanto ci si aspetti. Per esempio,
poi nel commento lo stesso
void OnStart()
{
double Price1 = 105143;
double Price2 = Price1 - 1 e-11;
Print(TOSTRING(Price1) + TOSTRING(MathFloor(Price1)) +
TOSTRING(Price2) + TOSTRING(MathFloor(Price2)) +
TOSTRING(Price1 > Price2));
}
Grazie, devo aver trovato la soluzione giusta dopo tutto, ma ero preoccupato di un errore a causa dell'allineamento errato!
Il resto di un numero non normalizzato diviso per un altro numero non normalizzato, il risultato è in ogni caso non normalizzato.
Questa funzione dovrebbe essere eliminata del tutto dalla lingua, per non traumatizzare la psiche immatura.
Forse ho trovato la soluzione giusta dopo tutto.
Il resto di un numero non normalizzato diviso per un altro numero non normalizzato, il risultato è in ogni caso non normalizzato.
Questa funzione dovrebbe essere eliminata del tutto dalla lingua, per non traumatizzare la psiche immatura.
Beh, per me va bene. Questa è la parte difficile.
Normalizza solo prima di usare direttamente i risultati dei tuoi calcoli. Evitare il più possibile tutte le conversioni di numeri e le conversioni in anticipo.
State facendo conversioni inutili che causano la perdita di caratteri.
Beh, per me va bene. Questa è la cosa divertente.
È già un codice disperato..... L'ho fatto in modi diversi. Ma come detto sopra. Probabilmente a causa di accettare erroneamente che stavo peccando un errore. Anche se anche queste variabili sono state glitchate nel codice.