DoubleとFLOATの比較 - MathFloorの不明確なエラー - ページ 3 1234567 新しいコメント Vladislav Andruschenko 2017.02.26 10:09 #21 Andrey F. Zelinsky: というのも、https://www.mql5.com/ru/docs/convert/normalizedoublePrint()を使ってログブックに出力する場合、正規化された数値には予想以上に多くの小数点以下の桁数が含まれることがあることに注意してください。例えば、こんな感じです。その後、コメントで同じ Vladislav Andruschenko 2017.02.26 10:10 #22 fxsaber:#define TOSTRING(A) #A + " = " + (string)(A) + " "void OnStart(){ double Price1 = 105143; double Price2 = Price1 - 1 e-11; Print(TOSTRING(Price1) + TOSTRING(MathFloor(Price1)) + TOSTRING(Price2) + TOSTRING(MathFloor(Price2)) + TOSTRING(Price1 > Price2));} 結果Price1 = 105143.0 MathFloor(Price1) = 105143.0 Price2 = 105143.0 MathFloor(Price2) = 105142.0 Price1>Price2 = true ダブルナンバー未設定を文字通りに受け取らないでください。ありがとうございます。結局、正しい解答を見つけたに違いないのですが、アライメントが正しくないので、ミスがないか心配でした Dmitry Fedoseev 2017.02.26 10:12 #23 正規化されていない数値を別の正規化されていない数値で割った余り であり、結果はいかなる場合も正規化されていない。この機能は、未熟な精神にトラウマを与えないように、言語から完全に取り除くべきである。 fxsaber 2017.02.26 10:13 #24 Vladislav Andruschenko: 結局、正しい解答を見つけたのかもしれない。 残念ながら、あなたのコードは、完全に誤解していることを示すものです。問題の真相に迫るようにする。 Vladislav Andruschenko 2017.02.26 10:13 #25 Dmitry Fedoseev:正規化されていない数値を別の正規化されていない数値で割った余り であり、結果はいかなる場合も正規化されていない。この機能は、未熟な精神にトラウマを与えないように、言語から完全に取り除くべきである。 まあ、私の場合はすべてが正常化されているのですが。そこが面白いんです。 Andrey Dik 2017.02.26 10:15 #26 Vladislav Andruschenko: まあ、私はいいんですけどね。そこが厄介なところです。 無駄なコンバージョンをして、看板をなくす原因になっている。 計算結果を直接使用する前にのみ正規化する。数値の変換や換算は、事前にできるだけ避けてください。 Vladislav Andruschenko 2017.02.26 10:16 #27 Andrey Dik: 無駄な変換を行っているため、文字化けが発生している。 これらはもう絶望的なコードです......。いろいろな方法でやっています。しかし、上記で言われているようにおそらく、間違って受け取ったために、私はその間違いに罪を犯してしまったのでしょう。これらの変数もコード上では不具合がありましたが。皆さん、ご協力ありがとうございました。しかし、フロートではすべてがクリアに機能します。 fxsaber 2017.02.26 10:19 #28 Vladislav Andruschenko:フロートですべて正常に動作します。 最悪の勧告として、doubleからfloatへの切り替えがあります。 Dmitry Fedoseev 2017.02.26 10:19 #29 Vladislav Andruschenko: まあ、私はいいんですけどね。そこが面白いところです。 いったいどこが正常なんだ? Andrey Dik 2017.02.26 10:20 #30 Vladislav Andruschenko: もう絶望的なコードです......。いろいろな方法でやっています。しかし、上記で言われているようにおそらく、私がバグで罪を犯していると間違って受け止めたからでしょう。これらの変数もコード上では不具合がありましたが。皆さん、ご協力ありがとうございました。しかし、フロートではすべてがクリアに機能します。 フロートは何のメリットもない数字の去勢です。変換のロスをすべて処理し、できるだけ高い精度である倍速を使うほうがいいのです。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
というのも、https://www.mql5.com/ru/docs/convert/normalizedouble
Print()を使ってログブックに出力する場合、正規化された数値には予想以上に多くの小数点以下の桁数が含まれることがあることに注意してください。例えば、こんな感じです。
その後、コメントで同じ
void OnStart()
{
double Price1 = 105143;
double Price2 = Price1 - 1 e-11;
Print(TOSTRING(Price1) + TOSTRING(MathFloor(Price1)) +
TOSTRING(Price2) + TOSTRING(MathFloor(Price2)) +
TOSTRING(Price1 > Price2));
}
ありがとうございます。結局、正しい解答を見つけたに違いないのですが、アライメントが正しくないので、ミスがないか心配でした
正規化されていない数値を別の正規化されていない数値で割った余り であり、結果はいかなる場合も正規化されていない。
この機能は、未熟な精神にトラウマを与えないように、言語から完全に取り除くべきである。
結局、正しい解答を見つけたのかもしれない。
正規化されていない数値を別の正規化されていない数値で割った余り であり、結果はいかなる場合も正規化されていない。
この機能は、未熟な精神にトラウマを与えないように、言語から完全に取り除くべきである。
まあ、私はいいんですけどね。そこが厄介なところです。
計算結果を直接使用する前にのみ正規化する。数値の変換や換算は、事前にできるだけ避けてください。
無駄な変換を行っているため、文字化けが発生している。
まあ、私はいいんですけどね。そこが面白いところです。
もう絶望的なコードです......。いろいろな方法でやっています。しかし、上記で言われているようにおそらく、私がバグで罪を犯していると間違って受け止めたからでしょう。これらの変数もコード上では不具合がありましたが。