1

重複の可能性:
JavaScriptの数学は壊れていますか?

If(0.3-0.2==0.2-0.1)ほとんどのプログラミング言語が結果を表示します。したがって、このステートメントをサポートする言語と、ほとんどの言語が表示される理由falseを知りたいです。truefalse

Javascriptでテスト済みPHP。なぜこれが起こるのですか?

4

1 に答える 1

4

これが発生する理由は、必ずしも言語自体ではなく、実装に関係しているためです。この質問への答えは、あなたが書くときIf(0.3-0.2==0.2-0.1)、あなたは実行された操作が有理数にあると考えているということです、これは誤りです、それらは確かに浮動小数点算術にあ​​ります。確かに、浮動小数点演算では、これ誤りです。したがって、答えは次のとおりです。任意精度の算術で定数を解釈するようにデフォルト設定される言語。(たとえば、これらが有理数を使用してHaskellで記述されていた場合、テストは「機能」します。)完全を期すために:Racket言語はこれを行います。

于 2012-10-05T04:03:57.030 に答える