NormalizeDoubleによるMT4での数値の丸め方 - ページ 8

 
Dmitry Fedoseev:

よくも悪くも。

引き算、2桁に正規化、そして1桁に正規化。

だから試してみてください :)

 
Event:

だから試してみてください :)

試してみたいことはありますか?かなりはっきりしていますね。引き算の結果は非正規化されるので、2桁に正規化しないと時々驚くことがある。
 
Event:

どれが必要ですか?

文字列の長 さを知る必要があるのですか?- 本当に枝は大丈夫ですか?

コード?

もし、私のように2行以上であれば、あなたのコードはもっと複雑です。

 
Vasyl Nosal:

コード?

もし、私のように2行以上であれば、あなたのコードはもっと複雑です。

自分の書き込みをよく読んでないんだろう。

コードをお渡ししましたが、1行しかありません。

 
Event:

書き込みをよく読んでいないのでは?

コードをお渡ししたのですが、1行しかありません。

かっこいいですね。そんな私のコードに1.15ノーマライズと書いてみる:))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))()))。
 
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);
  }
//+------------------------------------------------------------------+
 
Event:

だから試してみてください :)

ゼロと、負の数が間違っている。ポジティブなもので、意外と、サプライズもなく、正しい。
 

Vasyl Nosal:

extern ushort Characters_delete = 1;

///////////////////////////////////////////
string data=DoubleToString(Bid,Digits);
string resoult=StringSubstr(data,0,StringLen(data)-Characters_delete);  

へぇー。それは逆だ。まったくもって間違った結果です。
 
Dmitry Fedoseev:
ゼロの時も、負の数の時も、間違っている。ポジティブなものだと、意外とサプライズなしで、正解なんです。

負の値は、(Normalizeが丸め時にモジュロを増加させる場合)加算する必要があります。

そして、おそらくゼロでは何もできない。

見積書に適用した場合、<= 0になる確率は小さい...:)

 
丸めについて8ページ。昔は4年生でカバーしてたと思うんだけどな :(