NormalizeDouble

Arrotonda il numero floating point ad una precisione specificata.

double  NormalizeDouble(
   double  value,      // numero normalizzato
   int     digits      // numero di cifre dopo il punto decimale
   );

Parametri

valore

[in] Valore con il floating point.

digits

[in]  Formato di accuratezza, numero di cifre dopo il punto (0-8).

Valore restituito

Valore di tipo double con precisione preset.

Nota

I valori calcolati di StopLoss, TakeProfit, e valori di prezzi di apertura da ordini pendenti, devono essere normalizzati con la precisione, il cui valore può essere ottenuto da Digits().

Si prega di notare che quando si emette in output nel Journal usando la funzione Print(), un numero normalizzato può contenere un maggior numero di cifre decimali che ci si aspetta. Ad esempio, per:

   double a=76.671;             // Un numero normalizzato con tre posti decimali
   Print("Print(76.671)=",a);   // Output come è
   Print("DoubleToString(a,8)=",DoubleToString(a,8)); // Output con un preset di accuratezza

si avrà il seguente, nel terminale:

 DoubleToString(a,8)=76.67100000

 Print(76.671)=76.67100000000001

 

Esempio:

   double pi=M_PI;
   Print("pi = ",DoubleToString(pi,16));
      
   double pi_3=NormalizeDouble(M_PI,3);
   Print("NormalizeDouble(pi,3) = ",DoubleToString(pi_3,16))
   ;
   double pi_8=NormalizeDouble(M_PI,8);
   Print("NormalizeDouble(pi,8) = ",DoubleToString(pi_8,16));
   
   double pi_0=NormalizeDouble(M_PI,0);
   Print("NormalizeDouble(pi,0) = ",DoubleToString(pi_0,16));
/*
  Risultato:
   pi= 3.1415926535897931
   NormalizeDouble(pi,3)= 3.1419999999999999
   NormalizeDouble(pi,8)= 3.1415926499999998
   NormalizeDouble(pi,0)= 3.0000000000000000
*/

Vedi anche

DoubleToString, Tipi Reali (double, float), Riduzione dei tipi