重複の可能性:
JavaScriptの数学は壊れていますか?
If(0.3-0.2==0.2-0.1)
ほとんどのプログラミング言語が結果を表示します。したがって、このステートメントをサポートする言語と、ほとんどの言語が表示される理由false
を知りたいです。true
false
Javascript
でテスト済みPHP
。なぜこれが起こるのですか?
重複の可能性:
JavaScriptの数学は壊れていますか?
If(0.3-0.2==0.2-0.1)
ほとんどのプログラミング言語が結果を表示します。したがって、このステートメントをサポートする言語と、ほとんどの言語が表示される理由false
を知りたいです。true
false
Javascript
でテスト済みPHP
。なぜこれが起こるのですか?
これが発生する理由は、必ずしも言語自体ではなく、実装に関係しているためです。この質問への答えは、あなたが書くときIf(0.3-0.2==0.2-0.1)
、あなたは実行された操作が有理数にあると考えているということです、これは誤りです、それらは確かに浮動小数点算術にあります。確かに、浮動小数点演算では、これは誤りです。したがって、答えは次のとおりです。任意精度の算術で定数を解釈するようにデフォルト設定される言語。(たとえば、これらが有理数を使用してHaskellで記述されていた場合、テストは「機能」します。)完全を期すために:Racket言語はこれを行います。