エラー、バグ、質問 - ページ 1129

 

A100:
32'535'244'799 != 32'535'215'999 - какое правильное? 

正しくは、"3000.12.31 23:59:59" の 32'535'215'999 となります。

そして32'535'244'799は"3001.01.01 07:59:59"正しいでしょう

 
Fleder:

datetime 型の 制限値が正しく定義されていないだけです。

どうやら、ローカルタイムをGMTとUTCで同時に表示する可能性を考慮して、制限を設けているようです。そうすると、-43'200から32'535'291'599まで、より広い範囲(±12時間)を作るのが理にかなっていると言えるでしょう
 
Fleder:

コンパイラは数値13.7をdouble型として扱います。しかし同時に、この数値は可逆的にfloat型に 変換することができます

であり、この警告は不要です。

実数13.7を損失なくfloat型に変換できるとどうしてわかるのでしょうか?
 
stringo:
実数13.7が損失なくfloat型に変換できるとどうしてわかるのでしょうか?

そうでしょう?13.7=0.137*1e+2という数字があります。小数点以下3桁をfloat型に 変換することで、損失はないのでしょうか?私の見たところ、変換しようとすると精度が落ちてしまいます。

小数点以下が6桁以上の数字

float型を使って、5桁の文字引用符(例:1.38829)をバイナリファイルに保存してみました。として、ファイルから読み出してグラフに表示しようとしたところ

チャート自体のローソク足に適用されるチャートインジケータは、若干のズレがあります。しかし、5桁に正規化した後は、それらは消えてしまった。

しかし、そこでは、まずdoubleからfloatに、そしてfloatからdoubleにと、二重に精度が落ちている。

 
https://www.mql5.com/ru/docs/convert/normalizedouble Fleder:

そうでしょう?13.7=0.137*1e+2という数字があります。小数点以下3桁をfloat型に 変換することで、損失はないのでしょうか?私の見たところ、変換しようとすると精度が落ちてしまいます。

小数点以下が6桁以上の数字

float型を使って、5桁の文字引用符(例:1.38829)をバイナリファイルに保存してみました。として、ファイルから読み出してグラフに表示しようとしたところ

チャート自体のローソク足に適用されるチャートインジケータは、小さな齟齬がある。しかし、5桁に正規化した後は、それらは消えてしまった。

しかし、最初はdoubleからfloatに、そしてfloatからdoubleにと、二重に精度を落としていたのです。

いいえ、無限の分数です。私たちは書いても書いても、あなたは読まない。
 
stringo:
いいえ、無限の分数です。私たちは書いても書いても、あなたは読まない

読みました!しかし、損失は「技術的に」(フォーマットの特殊性)、そして必要でさえない端数で発生するのです。

void OnStart()
{
  Print((float)(13.7));   //13.7 - потерь "не видно"
  Print((double)(13.7));  //13.7 - здесь тоже
}
Особенности работы с числами типа double в MQL4 - Статьи по MQL4
  • www.mql5.com
Особенности работы с числами типа double в MQL4 - Статьи по MQL4: примеры использования экспертов, тестирования и оптимизации
 
A100:

私もこのクラッシュを経験したことがあります。ターミナル(910)とコンパイラ(921)が一致しない場合、スクリプト実行時に発生する

以下はそのコードです。

class A  {
        int     array[];
};
void OnStart()
{
        A *a = new A();
        if ( a != NULL )
                delete( a );
}

コンパイラ930、ターミナル910。結果

 
A100:

以下はそのコードです。

コンパイラ930、ターミナル910。結果

どうしてターミナルが910で、コンパイラが930なんだ?

両方が910であれば、このスクリプトは「クラッシュ」しない。

 

ただ、1端末ではない(正確にはわからないが、Marketではよくあることだと思う)

オリジナルは...⇄Scripts フォルダから共有できます。

ファイル:
Crash.ex5  4 kb
 
A100:

ただ、1端末ではない(正確にはわからないが、Marketではよくあることだと思う)。

オリジナルは ...\MQL5Scripts フォルダから共有できます。

まあ、それは私がWin XP 32 bitを 証明しなければならなかったことです。