MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 107

 
こんにちは!MQLを効率よく学ぶにはどうしたらいいですか?簡単な方法を探しているわけではなく、ただ理解したいだけなのです!コバレフのチュートリアルを勉強し、ビデオを見て、そこに規定されているコードを繰り返そうとしているところなのです。でも、チュートリアルのコードを繰り返しても、間違いが多いんです......。バージョンアップしたことがよくわかりました。 このサイトが助けてくれるということで、ここに来ました!どうしたらいいのでしょうか?
 
焦っているのかもしれませんね~。
 
Alexey Kozitsyn:
文字列を". "デリミターで分割する。

悪くないアイデアだ...。

アレクセイ・ヴィクトロフ
分解する必要はありません。正しい数値を確認 するためだけに、文字列に変更します。計算のために何かをする必要はありません。

面倒な場合は、文字列を StringToDouble() の数値に変換して、正しい数値に正規化した _Point (おそらく _Digits) を掛ければよいでしょう。

要は、文字列を3つの数字に分解する必要があるのですが、数字に変換できないんです。言語としては非常に大きな数字であることが判明しました。

以下は、そのような数値の例である。

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

111111111111111104の数字を表示します。

 
FOTOGRAF14:
焦っているのかもしれませんね~。
まあ、焦ることはないですよー。急ぐのはノミを捕まえるときだけ((c) army humour)。
 
-Aleks-:

文字列を3つの数字に分解する必要があるのですが、数字に変換できないこと、つまり言語としては非常に大きな数字であることが判明したのです。

以下は、そのような数値の例である。

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

111111111111111104の数字を表示します。

おとぎ話...
 
Vitalie Postolache:
テイルズ...

自分で試してみてください。

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);

double Test=CalcZ;
Print ("Test=",Test);

 
-Aleks-:

自分で試してみてください。

long CalcY=StringToDouble("111111111111111111");
Print ("CalcY=",CalcY);

long CalcZ=StringToInteger("111111111111111111");
Print ("CalcZ=",CalcZ);

double Test=CalcZ;
Print ("Test=",Test);

数字が大きすぎる」という意味ですが、コードも間違っているので、フォーマットからフォーマットへの変換をする場合は、このようにした方がいいと思います。

long CalcY=(long)StringToInteger("111111111111111111");
Print ("CalcY=",IntegerToString(CalcY));

そこで文句を言っているのは、大きな数字ではなく、テキスト出力の不具合です。

 
Vitalie Postolache:
数字が大きすぎる」という意味です。
正確な計算をするには大きすぎる数字です。そうでなければ、数字の末尾にある誤差をどう説明するのでしょうか?
 
-Aleks-:
正確な計算をするには大きすぎる数字です。そうでなければ、数字の末尾にある誤差をどう説明するのでしょうか?
を追加しました。
 
Vitalie Postolache:
を追加しました。

そのため、このような問題があります。長い行を入れることはできますが、カンマの計算のために2倍必要です。