• Dの0.1 + 0.2 == 0.3はなぜか?

    疑問点 assert(0.1 + 0.2 != 0.3); // shall be true は、言語がネイティブの浮動小数点演算を使用しているかどうかを確認する、私のお気に入りのチェックです。 C++ #include <cstdio> int main() { printf("%d\n", (0.1 + 0.2 != 0.3)); return 0;

    2023-12-05 05:28:30
  • [解決済み] 16ビット、32ビット、64ビットのIEEE-754システムで表現できる数値の範囲は?

    質問 浮動小数点数がどのように表現されるかについて少し知っていますが、十分ではありません。 一般的な質問です。 与えられた精度 (私の目的では、基本 10 における正確な小数点以下の桁数) に対して、16 ビット、32 ビット、64 ビットの IEEE-754 システムではどの範囲の数値を表現できますか? 具体的には、私は 16 ビットおよび 32 ビットの数値が ±0.5

    2023-06-26 23:21:45
  • [解決済み] quiet NaNとsignaling NaNの違いは何ですか?

    質問 浮動小数点について読んでいて、演算によってNaNが発生することは理解できました。しかし、これらが具体的にどのような概念なのか理解できません。これらの違いは何ですか? C++のプログラミングでは、どちらが生成される可能性がありますか?プログラマとして、sNaNを発生させるプログラムを書くことは可能でしょうか? どのように解決するのですか? 演算の結果が静かなNaNである場合、

    2022-07-05 23:16:42
  • [解決済み] 2つの不等な浮動小数点数の引き算で0を得ることは可能ですか?

    質問 以下の例で、0(または無限大)による除算は可能でしょうか? public double calculation(double a, double b) { if (a == b) { return 0; } else { return 2 / (a - b); } } 通常の場合、も

    2022-07-04 01:42:01
  • [解決済み] なぜNaNはNaNと等しくないのですか?[重複あり]

    質問 この質問はすでにここに回答があります : IEEE754のNaN値に対して、すべての比較がfalseを返す根拠は何ですか? (回答11件)

    2022-04-28 06:10:36
  • [解決済み] 単精度浮動小数点演算と倍精度浮動小数点演算はどう違うのですか?

    質問 単精度浮動小数点演算と倍精度浮動小数点演算の違いは何ですか? 特にゲーム機に関連した実用的な用語に興味があります。例えば、NINTENDO64は64ビットプロセッサを搭載しているのか、もし搭載しているならば倍精度浮動小数点演算が可能だったということになるのでしょうか。PS3やXbox360は倍精度浮動小数点演算ができるのか、それとも単精度なのか、また一般的に倍精度機能は利用されてい

    2022-04-16 15:28:08
  • [解決済み】IEEE754のNaN値に対して、すべての比較がfalseを返す根拠は何ですか?

    質問 NaN 値の比較は、なぜ他のすべての値とは異なる動作をするのですか? つまり、演算子 ==, <=, >=, <, > で、片方または両方の値がNaNである場合の比較はすべて、他のすべての値の場合の動作とは逆に、falseを返します。 これは、何らかの形で数値計算を簡略化するためだと思いますが、その理由を明示的に示したものは IEEE754の現状に関する

    2022-03-27 01:38:07
  • [解決済み] 通貨を表すのにDoubleやFloatを使ってはいけないのですか?

    質問 いつも言われていることですが 決して でお金を表現すること。 double または float 今回は、「なぜ? きっとそれなりの理由があるのでしょうが、それが何なのかわからないだけです。 どうすれば解決するの? なぜなら、浮動小数点数と倍数は、私たちがお金に使う10の基数を正確に表すことができないからです。この問題は、Javaだけでなく、基数2の浮動小数点型

    2022-03-18 16:11:48
  • [解決済み] コアOCamlにおける浮動小数点数の絶対値

    質問 OCamlでfloatの絶対値関数が必要なのですが、コア言語では持っていないようなので、以下のように書きました。 let absF (f:float) = if f > 0.0 then f else (f *. -1.0);; を引用していますが、これはポジティブには有効ですが、ネガティブには無効のようです。 この式は float -> float 型ですが、

    2022-02-25 09:24:34
  • [解決済み】Lisp: なぜ (- 1e16 1) は 999999999999 ではなく 1000000000000 になるのでしょうか?

    質問 というか、なぜ (= 1e16 (- 1e16 1)) が真を返すか?どうすればより正確な回答が得られるのでしょうか? どのように解決するのですか? 1e16 は、Scheme的には不正確な数(より実用的な言い方をすれば浮動小数点数)である。2 以上の (倍精度の) 浮動小数点数では 53 (9007199254740992)であることから ウルップ は1よ

    2022-02-13 23:59:51