MQL4およびMQL5でDigits()をバイパスして任意の数値(引用符だけでなく)の小数点以下桁数を取得 - ページ 3

 
A100:

ゴーストと関係あるのか?

Print(500000000000.00001); // 500000000000.0
 
ただただ驚くばかりです。間違った答えが正解であることを、これほどまでに頑なに、そして真面目に証明する。私のせいではなく、彼が考え出したのです))
 
Alexandr Sokolov:

このフォーラムではなぜかそうなっていますが、エディタではいつもと同じです

まあ、その名前を他で使ったことがあるかどうかは確認するけど。

 
Алексей Тарабанов:

まあ、その名前をどこかで使ったことがあるかどうかは確認しますけど。

エディターで変数値の名前が青く表示されない(フォーラムだけです)。しかも、MQL4だけ青色で、MQL5では通常通り黒色です。なぜそうなるのかわからないし、コードの正しさにも影響しないようで、スクリーンショット付きのクレームを投げる人はいませんでした)。

 
fxsaber:

ダブルスにはそのような数値は ありません。500000000.00100016593933105に ほぼ等しい。割り当てられています。

やったね また、小数点以下は何桁ですか? 8?

 
Алексей Тарабанов:

8個ある」ではなく、mqlにはデフォルトで8個あります。ドキュメントを読んではいけないのでしょうか?

MQLのデフォルトの8は何ですか?ドキュメントへのリンクはどこですか?そして、それが本来の問題とどう関係するのでしょうか。

 
   double x=500000000.0001;
   
   Alert((500000000.0001==NormalizeDouble(500000000.0001,4))); // true
 
int d(double x){
   int n;
   for(n=0;n<8;n++){
      if(x==NormalizeDouble(x,n)){
         return(n);
      }
   }
   return(n-1);
}
 
Dmitry Fedoseev:

ひざまずきます。

 

Dmitry Fedoseev:

int d(double x){
   int n;
   for(n=0;n<8;n++){
      if(x==NormalizeDouble(x,n)){
         return(n);
      }
   }
   return(n-1);
}
これもうまくいくと思いますが、まだ何もテストしていませんが、アイデアはわかりました。