NormalizeDouble

Bir kayan noktalı (ondalık) sayıyı, belirtilen kesinliğe yuvarlar.

double  NormalizeDouble(
   double  value,      // normalleştirilmiş sayı
   int     digits      // noktadan sonraki ondalık basamak sayısı
   );

Parametreler

value

[in] Kayan noktalı değer.

digits

[in]  Kesinlik değeri - noktadan sonraki ondalık hane sayısı (0-8).

Dönüş değeri

Önceden ayarlanmış kesinliğe sahip double tipli değer.

Not

Zarar Durdur (StopLoss), Kar Al (TakeProfit) değerleri ve bekleyen emirlerin açılış fiyatı değerleri, Digits() fonksiyonu kullanılarak elde edilebilecek bir kesinlik değeri ile normalleştirilmelidir.

Print() fonksiyonu ile Günlüğe yapılan çıktılarda, normalleştirilmiş bir sayı için, ondalık hanelerin beklenenden çok olabileceğini not ediniz. Örneğin:

   double a=76.671;             // Üç ondalık haneye sahip normalleştirilmiş sayı
   Print("Print(76.671)=",a);   // Olduğu gibi çıktıla
   Print("DoubleToString(a,8)=",DoubleToString(a,8)); // Önceden ayarlanmış bir kesinlik ile çıktıla

komutları için, terminalde şunları elde edersiniz:

 DoubleToString(a,8)=76.67100000

 Print(76.671)=76.67100000000001

 

Örnek:

   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));
/*
  Sonuç:
   pi= 3.1415926535897931
   NormalizeDouble(pi,3)= 3.1419999999999999
   NormalizeDouble(pi,8)= 3.1415926499999998
   NormalizeDouble(pi,0)= 3.0000000000000000
*/

Ayrıca Bakınız

DoubleToString, Reel tipler (double, float), Tiplerin dönüşümü