Arrotondamento dei numeri in MT4 tramite NormalizeDouble

 

Salve. Potete dirmi qual è il problema.

Perché la funzione NormalizeDouble(0.055,2) arrotonda il numero "0.055" a "0.06"?

Non è una funzione di arrotondamento delle frazioni.

 

https://docs.mql4.com/ru/convert/normalizedouble

Округление числа с плавающей точкой до указанной точности.

NormalizeDouble - Документация на MQL4
  • docs.mql4.com
NormalizeDouble - Документация на MQL4
 

Per continuare il tema. C'è uno script

#property strict

void OnStart()
  {
   double v1 = NormalizeDouble(0.055,2);
   double v2 = NormalizeDouble(0.0549,2);

   Print("v1 = ",DoubleToString(v1),", v2 = ",DoubleToString(v2));
  }

risultato: v1 = 0,06000000, v2 = 0,05000000, mentre dovrebbe essere 0,06000000 in entrambi i casi.

 
Maxim Khrolenko:

Per continuare il tema. C'è uno script

risultato: v1 = 0,06000000, v2 = 0,05000000, mentre dovrebbe essere 0,06000000 in entrambi i casi.

Arrotondamento - Wikipedia

 
Roman Starinskij:

Salve. Potete dirmi qual è il problema.

Perché la funzione NormalizeDouble(0.055,2) arrotonda il numero "0.055" a "0.06"?

Non è una funzione di arrotondamento delle frazioni.

Quale pensi che dovrebbe essere il risultato?
 
Maxim Khrolenko:

Per continuare il tema. C'è uno script

risultato: v1 = 0,06000000, v2 = 0,05000000, mentre dovrebbe essere 0,06000000 in entrambi i casi.

Perché diavolo no?
 
Maxim Khrolenko:

Per continuare il tema. C'è uno script

Risultato: v1 = 0,06000000, v2 = 0,05000000, mentre dovrebbe essere 0,06000000 in entrambi i casi.

Beh, vshchupeeeeeeeeeeeeeeeeeeeee....

Dovrebbe essere v1=v2=0,06.

Non l'ho mai nemmeno controllato... È davvero così sbagliato?

Avete MT5 o MT4?

 
new-rena:

Beh, wow, wow, wow, wow, wow, wow, wow, wow, wow, wow, wow.

dovrebbe essere v1=v2=0,06.

Non ho mai nemmeno controllato... È davvero così incasinato?

Perché mai dovrebbe farlo?
 
Dmitry Fedoseev:
Perché l'hai fatto?

Ho preso una D a scuola, ma ricordavo di aver arrotondato correttamente...

Se il numero più a destra è maggiore o uguale a 5, allora il numero successivo a sinistra è +1. E così via, passando da destra a sinistra.

 
new-rena:
Ho preso delle F a scuola, ma ricordo questo...

Interessante, che tipo di scuola è questa... Dimmi cosa stai pensando. Perché non ho idea di come possa essere così cliché.

 
Maxim Khrolenko:

Per continuare il tema. C'è uno script

risultato: v1 = 0,06000000, v2 = 0,05000000, mentre dovrebbe essere 0,06000000 in entrambi i casi.

E stai normalizzando 3 caratteri dopo il punto decimale
Motivazione: