DoubleToStr()関数で小数点以下を全て表示する

アイキャッチ

レートの小数点を3/5桁でログ出力する方法

Print()関数を使うことで、任意の情報をログファイルに出力できます。デバッグ目的で使うことが多いと思います。

if文等の条件判断が正しく行われているかを確認する際に、特に力を発揮してくれます。

先日、ある読者の方からの依頼でEAを作成していたのですが、その際、ティックごとのレートを確認する必要があり、Print()関数を使いました。

以下がその時に使ったコードです。

説明は…不要ですよね。AskとBidのレートを表示するだけです。実行結果は以下の通りでした。

問題ないように見えますが、FxProのEURUSDは小数点以下5桁まで存在します。でも、4桁目までしか出力されていません。

2行目と3行目のAskはどちらも1.1313ですが、恐らく5桁目は違うと思われます。3行目でif文の条件が成立したので、そう考えました。もし、完全に同一値なら、2行目で成立するはずですから。

NormalizeDouble()関数なんかも使ってみましたが、現象変わらず。

困ったなーと色々ググっていたら、DoubleToStr()関数を発見。こいつの存在をすっかり失念していました。

で、DoubleToStr()関数を使って改良したコードが以下です。

こいつで再実行したところ、以下の期待通りの結果を得られました!

やっぱり、2行目と3行目のAskは異なる値でしたね。これできちんとアルゴリズムを検証できます♪

余談ですが、DoubleToStr()関数と同じ機能で、DoubleToString()関数というのもあります。DoubleToString()の方が新しい関数で、DoubleToStr()は互換性のために存在しているのだと思いますが、メジャーなのはDoubleToStr()だと思いましたので、本記事ではDoubleToStr()で説明しています。

ブログランキングに参加中!

ポチっとクリック頂けると励みになります♪
(クリックしてもランキング一覧が表示されるだけですが、それでOKです)

  にほんブログ村 為替ブログ FX システムトレード派へ

コメントを残す



ten + fifteen =