NormalizeDouble 関数
この関数は、浮動小数点数を指定した精度で丸めます。つまり、小数点以下何桁目かを指定し四捨五入して数値を丸める処理を行ないます。
指定した小数点の四捨五入ではなく、切り上げ、切り捨ての丸めをしたい場合は、こちらを参考にしてください。
データ型と構成・戻り値
double NormalizeDouble(①,②);
戻り値は、指定した精度で丸めた数値を返します。
引数 [2]
NormalizeDouble関数は 2個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | value | double | - | - | 浮動小数点を持った数値。 |
② | digits | int | - | - | 丸める小数点以下の桁数を指定する。0~8の範囲で設定。 通貨ペアの小数点以下の桁数に合わせる時は Digits を使うと良い。 |
使用例
NormalizeDouble関数を使ったログ出力
変数 val に浮動小数点を持った数値を代入して、指定した桁数を四捨五入で丸めるコードです。
コード
// NormalizeDouble関数を使った数値の四捨五入
#property strict
double val = 1.23456789123456789;
void OnInit() {
Print("数値の丸め 0桁 :" ,NormalizeDouble(val, 0));
Print("数値の丸め 1桁 :" ,NormalizeDouble(val, 1));
Print("数値の丸め 2桁 :" ,NormalizeDouble(val, 2));
Print("数値の丸め 3桁 :" ,NormalizeDouble(val, 3));
Print("数値の丸め 4桁 :" ,NormalizeDouble(val, 4));
Print("数値の丸め 5桁 :" ,NormalizeDouble(val, 5));
Print("数値の丸め 6桁 :" ,NormalizeDouble(val, 6));
Print("数値の丸め 7桁 :" ,NormalizeDouble(val, 7));
Print("数値の丸め 8桁 :" ,NormalizeDouble(val, 8));
Print("数値の丸め 9桁 :" ,NormalizeDouble(val, 9));
Print("数値の丸め 10桁 :" ,NormalizeDouble(val, 10));
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)
結果
数値の丸め小数点以下 0~8桁までは四捨五入で丸められます。小数点以下 9桁以上は小数点以下 8桁までとして丸められます。
その他の例
実際のプログラムで NormalizeDouble関数での数値の丸めは Digits と合わせて使用されることが多いです。
買いのみトラリピEA-コードの解説-価格変動毎の処理-④注文ポジション無しの時は注文をする で使われている NormalizeDouble関数の使い方を参考にしてください。