NormalizeDoubleによるMT4での数値の丸め方 - ページ 8 123456789101112131415...17 新しいコメント Vladimir Suslov 2016.02.25 18:13 #71 Dmitry Fedoseev:よくも悪くも。引き算、2桁に正規化、そして1桁に正規化。だから試してみてください :) Dmitry Fedoseev 2016.02.25 18:14 #72 Event:だから試してみてください :) 試してみたいことはありますか?かなりはっきりしていますね。引き算の結果は非正規化されるので、2桁に正規化しないと時々驚くことがある。 削除済み 2016.02.25 18:16 #73 Event:どれが必要ですか?文字列の長 さを知る必要があるのですか?- 本当に枝は大丈夫ですか?コード?もし、私のように2行以上であれば、あなたのコードはもっと複雑です。 Vladimir Suslov 2016.02.25 18:22 #74 Vasyl Nosal:コード?もし、私のように2行以上であれば、あなたのコードはもっと複雑です。自分の書き込みをよく読んでないんだろう。コードをお渡ししましたが、1行しかありません。 削除済み 2016.02.25 19:05 #75 Event:書き込みをよく読んでいないのでは?コードをお渡ししたのですが、1行しかありません。 かっこいいですね。そんな私のコードに1.15ノーマライズと書いてみる:))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))()))。 Lilita Bogachkova 2016.02.25 19:12 #76 Vasyl Nosal: +++ただし、小数点以下15桁より長い数値の場合は、やはり何らかの方法で切り捨てなければ、正しく動作しません。//+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { ushort Characters_delete=15; for(int i=0;i<=Characters_delete;i++) { double v1=1.123456789012345; v1=DoubleCrop(v1,i,Characters_delete); Print("v1 = ",i," = ",DoubleToString(v1,Characters_delete-i)); } Print("---"); } //+------------------------------------------------------------------+ //| Double Crop function | //+------------------------------------------------------------------+ double DoubleCrop(double value,int ii,ushort Characters) { string data="",resoult=""; data=DoubleToString(value,Characters); resoult=StringSubstr(data,0,StringLen(data)-ii); return StringToDouble(resoult); } //+------------------------------------------------------------------+ Dmitry Fedoseev 2016.02.25 19:32 #77 Event:だから試してみてください :) ゼロと、負の数が間違っている。ポジティブなもので、意外と、サプライズもなく、正しい。 Dmitry Fedoseev 2016.02.25 19:33 #78 Vasyl Nosal:extern ushort Characters_delete = 1; /////////////////////////////////////////// string data=DoubleToString(Bid,Digits); string resoult=StringSubstr(data,0,StringLen(data)-Characters_delete); へぇー。それは逆だ。まったくもって間違った結果です。 Vladimir Suslov 2016.02.25 19:43 #79 Dmitry Fedoseev: ゼロの時も、負の数の時も、間違っている。ポジティブなものだと、意外とサプライズなしで、正解なんです。負の値は、(Normalizeが丸め時にモジュロを増加させる場合)加算する必要があります。そして、おそらくゼロでは何もできない。見積書に適用した場合、<= 0になる確率は小さい...:) Алексей Тарабанов 2016.02.25 19:46 #80 丸めについて8ページ。昔は4年生でカバーしてたと思うんだけどな :( 123456789101112131415...17 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
よくも悪くも。
引き算、2桁に正規化、そして1桁に正規化。
だから試してみてください :)
だから試してみてください :)
どれが必要ですか?
文字列の長 さを知る必要があるのですか?- 本当に枝は大丈夫ですか?
コード?
もし、私のように2行以上であれば、あなたのコードはもっと複雑です。
コード?
もし、私のように2行以上であれば、あなたのコードはもっと複雑です。
自分の書き込みをよく読んでないんだろう。
コードをお渡ししましたが、1行しかありません。
書き込みをよく読んでいないのでは?
コードをお渡ししたのですが、1行しかありません。
+++
ただし、小数点以下15桁より長い数値の場合は、やはり何らかの方法で切り捨てなければ、正しく動作しません。
だから試してみてください :)
Vasyl Nosal:
ゼロの時も、負の数の時も、間違っている。ポジティブなものだと、意外とサプライズなしで、正解なんです。
負の値は、(Normalizeが丸め時にモジュロを増加させる場合)加算する必要があります。
そして、おそらくゼロでは何もできない。
見積書に適用した場合、<= 0になる確率は小さい...:)