MQL4およびMQL5でDigits()をバイパスして任意の数値(引用符だけでなく)の小数点以下桁数を取得 - ページ 4 1234567891011...22 新しいコメント A100 2018.11.03 22:30 #31 void OnStart() { double price = 500000000.0001; Print( price, ":", d( price )); } 結果:500000000.0001:4 4、ただし8は不可 Алексей Тарабанов 2018.11.03 22:34 #32 よし、それじゃ...この喜びを、好きな人は浴びてください。 fxsaber 2018.11.03 22:37 #33 A100:ご想像の とおりです。また、小数点以下は何桁ですか? 8?テストは必要ない Print(NormalizeDouble(1234567890 + 1 e-7, 8) == 1234567890); // true Print(1234567890 + 1 e-7 == 1234567890); // true A100 2018.11.03 22:43 #34 fxsaber:チェックされる筋合いはないとはいえ、コードを 修正したわけですから、チェックは役に立ちました。 Алексей Тарабанов 2018.11.03 22:47 #35 プリント( 12345+1e-7 ) fxsaber 2018.11.03 22:49 #36 A100:それでも、あなたはコードを 修正しましたコードがどこから引き出されたかを見てください。そして、それがどのような実用的な目的であったのか。明確でない場合 - 価格のため。 そのようなユーザーが使うことを想定していないため、コードにフールプルーフがなかった。 議論の過程で、コードを公開する場合はフールプルーフを実施する必要があることが判明した。そうしないと、5ページもクソが続くことになる。 だから、確かに、修正された。もう一度言いますが、Digitが無限にある数字が普通です。 fxsaber 2018.11.03 22:53 #37 Dmitry Fedoseev: NormalizeDoubleの 仕組みは、その完全なアナログをプレイしたことがあるので知っています。 どのようなDigitsを手に入れたいかによって、大きく変わってきます。二重表現の場合、あなたのコードは別の値を与えます。数値定数の桁数であれば、正しい(必ずしもそうではない)。 Алексей Тарабанов 2018.11.03 23:01 #38 またドロッパーの出番か...。 A100 2018.11.03 23:08 #39 fxsaber:それは、あなたが何を必要としているかによって大きく異なります。必要なもの int f( double ); 様に void OnStart() { Print( f( NormalizeDouble( 500000000.0001, 4 ))); } の結果が等しくなる。4 fxsaber 2018.11.03 23:14 #40 A100:必要なもの まで という結果になりました。4もしかしたら、それこそがあなたに必要な機能かもしれません。TSに回答しました。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム MQL4およびMQL5でDigits()をバイパスして任意の数値の小数点以下を取得する方法(引用符のみならず アレクサンドル・ソコロフ さん 2018.11.03 17:39 小数点以下の桁数が必要 な珍しい場面に直面したのは、私だけではないでしょう 1234567891011...22 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
結果:500000000.0001:4
4、ただし8は不可
ご想像の とおりです。また、小数点以下は何桁ですか? 8?
テストは必要ない
チェックされる筋合いはない
とはいえ、コードを 修正したわけですから、チェックは役に立ちました。
それでも、あなたはコードを 修正しました
コードがどこから引き出されたかを見てください。そして、それがどのような実用的な目的であったのか。明確でない場合 - 価格のため。
そのようなユーザーが使うことを想定していないため、コードにフールプルーフがなかった。
議論の過程で、コードを公開する場合はフールプルーフを実施する必要があることが判明した。そうしないと、5ページもクソが続くことになる。
だから、確かに、修正された。もう一度言いますが、Digitが無限にある数字が普通です。
NormalizeDoubleの 仕組みは、その完全なアナログをプレイしたことがあるので知っています。
どのようなDigitsを手に入れたいかによって、大きく変わってきます。二重表現の場合、あなたのコードは別の値を与えます。数値定数の桁数であれば、正しい(必ずしもそうではない)。
それは、あなたが何を必要としているかによって大きく異なります。
必要なもの
様に
の結果が等しくなる。4
必要なもの
まで
という結果になりました。4
もしかしたら、それこそがあなたに必要な機能かもしれません。TSに回答しました。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MQL4およびMQL5でDigits()をバイパスして任意の数値の小数点以下を取得する方法(引用符のみならず
アレクサンドル・ソコロフ さん 2018.11.03 17:39
小数点以下の桁数が必要 な珍しい場面に直面したのは、私だけではないでしょう