NormalizeDouble

浮動小数点数を指定された精度に丸めます。

double  NormalizeDouble(
  double  value,      // 正規化数
  int    digits      // 小数点以下の桁数
  );

パラメータ

value

[in] 浮動小数点を持つ値

digits

[in]  精度フォーマット。0~8 の小数点以下の桁数。

戻り値

事前に定義された精度を持つdouble 型の値

注意事項

計算された決済逆指値及び決済指値、また未決注文の価格は Digits() で取得される値によって正規化する必要があります。

正規化数は小数点以下の桁数を多く含むことがあるので、Print() 関数を使用しての操作ログへの出力時にはご注意ください。例えば

  double a=76.671;             // 小数点以下3桁の正規化数
  Print("Print(76.671)=",a);   // そのまま出力
  Print("DoubleToString(a,8)=",DoubleToString(a,8)); // 事前定義された精度で出力

端末には下記が表示されます。

 DoubleToString(a,8)=76.67100000

 Print(76.671)=76.67100000000001

 

例:

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

参照

DoubleToStringReal 型(double、float)型の削減