NormalizeDoubleによるMT4での数値の丸め方 - ページ 17 1...1011121314151617 新しいコメント Sergei Vladimirov 2016.09.28 08:36 #161 pavlick_:浮動小数点数の内部をひっくり返す、ちょっとしたトレーニングコードを書きました(自分でつっこんでみたくなった)。fでの出力 == 0.5 + 1/(2^24)。1/(2^24)は、ある度数での仮数の最下位桁 です。そこで具体的に何を見たかったのでしょうか?浮動小数点数は符号に1ビット、指数に8ビット、残りの23ビットが仮数であり、すなわち最大精度は2進数表現で小数点以下23桁、すなわち10進数7桁である。倍数の場合、符号に1ビット、指数に11ビット、残りの52ビットが仮数となり、最大精度は2進数表現で小数点以下52桁、小数点以下16桁となります。なぜコードがあるのですか? pavlick_ 2016.09.28 09:30 #162 Sergei Vladimirov:そこで具体的に何を見たかったのでしょうか?浮動小数点数は符号に1ビット、指数に8ビット、残りの23ビットが仮数、すなわち2進数表現で小数点以下23桁、つまり小数点以下7桁の最大精度を持っています。倍数の場合、符号に1ビット、指数に11ビット、残り52ビットが仮数となり、最大精度は2進数表現で小数点以下52桁、小数点以下16桁となります。なぜコードがあるのですか?"実践なき理論は死んで実を結ばず、理論なき実践は無用で悪質である"そして、浮動小数点数を使った面白いものがいろいろとあふれています。float a, b, f; a=123456789; b=123456788; f=a-b; cout << f; // cout: 8 Sergei Vladimirov 2016.09.28 10:15 #163 pavlick_:"実践なき理論は死んで実を結ばず、理論なき実践は役に立たず有害である"それに、浮動小数点数にはいろいろと面白いことがあるんですよ。もしかしたら、MKLならではのものを期待されているのかなと思いまして。そして、仮数オーバーフローというのは面白いですね。小学1年生向け。)void OnStart() { float f1 = (float)1.1; float f2 = (float)2.2; float f3 = (float)3.3; if((f1 * f2) * f3 == f1 * (f2 * f3)) Print("Выражения равны."); else Print("Нифига не равны!"); } pavlick_ 2016.09.28 10:41 #164 小学1年生向け。) もちろん、教えてください。ほとんどのプログラマーはこのテーマについて理解が浅く、私自身も多少のギャップがあります。 Sergei Vladimirov 2016.09.28 10:48 #165 pavlick_: もちろん、教えてください。ほとんどのプログラマーはこのテーマに対応していませんし、私自身も多少のギャップはあります。 まあ、私たちは二進法の訓練を受けたので、それが一生頭に残るんでしょうかね。) もうひとつは、全員がプログラマーではないことです。一般的に、私の質問があなたの庭の石ころのようなものだとは思っていないでしょう。私はただ、あなたのプログラムの目的 - 基準とMCLのいくつかの違いを見るために、と思ったので、質問したのです。 pavlick_ 2016.09.28 22:17 #166 int main(){ // МКЛ аналог numeric_limits<float>::epsilon() - FLT_EPSILON float a = (float)10 + numeric_limits<float>::epsilon(); float b = (float)1 + numeric_limits<float>::epsilon(); float c = (float)0.5 + numeric_limits<float>::epsilon(); print_float(a); print_float(b); print_float(c); } ----a-------------- value = 10 mantissa 24: 1,01000000000000000000000 exponenta - 127 = 3 мантиса без прибавки эпсилон: 1,01000000000000000000000 ----b-------------- value = 1.0000001192092896 mantissa 24: 1,00000000000000000000001 exponenta - 127 = 0 мантиса без прибавки эпсилон: 1,00000000000000000000000 ----c-------------- value = 0.50000011920928955 mantissa 24: 1,00000000000000000000010 exponenta - 127 = -1 мантиса без прибавки эпсилон: 1,00000000000000000000000 1...1011121314151617 新しいコメント 理由: キャンセル 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
浮動小数点数の内部をひっくり返す、ちょっとしたトレーニングコードを書きました(自分でつっこんでみたくなった)。
fでの出力 == 0.5 + 1/(2^24)。1/(2^24)は、ある度数での仮数の最下位桁 です。
そこで具体的に何を見たかったのでしょうか?浮動小数点数は符号に1ビット、指数に8ビット、残りの23ビットが仮数であり、すなわち最大精度は2進数表現で小数点以下23桁、すなわち10進数7桁である。倍数の場合、符号に1ビット、指数に11ビット、残りの52ビットが仮数となり、最大精度は2進数表現で小数点以下52桁、小数点以下16桁となります。なぜコードがあるのですか?
そこで具体的に何を見たかったのでしょうか?浮動小数点数は符号に1ビット、指数に8ビット、残りの23ビットが仮数、すなわち2進数表現で小数点以下23桁、つまり小数点以下7桁の最大精度を持っています。倍数の場合、符号に1ビット、指数に11ビット、残り52ビットが仮数となり、最大精度は2進数表現で小数点以下52桁、小数点以下16桁となります。なぜコードがあるのですか?
"実践なき理論は死んで実を結ばず、理論なき実践は役に立たず有害である"それに、浮動小数点数にはいろいろと面白いことがあるんですよ。
もしかしたら、MKLならではのものを期待されているのかなと思いまして。
そして、仮数オーバーフローというのは面白いですね。小学1年生向け。)
もちろん、教えてください。ほとんどのプログラマーはこのテーマに対応していませんし、私自身も多少のギャップはあります。