PHP の浮動小数点の不正確さ
PHP で浮動小数点演算を実行すると、予期しない結果が発生しますか?この問題は、コンピュータにおける浮動小数点表現の固有の性質により発生します。
浮動小数点数は精度が限られた 2 進数であり、数学的な期待と実際の結果の間に差異が生じます。これは、実数演算とは異なり、浮動小数点演算では特定の値に対して (a b)-b != a などの不正確さが発生する可能性があることを意味します。
説明するには、次の PHP コードを考えてみましょう。
$a = '35'; $b = '-34.99'; echo ($a + $b);
出力は 0.009999999999998 ですが、0.01 が期待されます。この偏差は、34.99 と 0.01 の両方を 2 進数で正確に表現できないために発生します。代わりに、近似が使用されます。
この問題を軽減するには、いくつかのアプローチを使用できます。
PHP には 10 進データ型がありませんが、round 関数と整数操作テクニックが効果的な処理の回避策を提供します。浮動小数点の不精度
以上がPHP 浮動小数点計算が不正確になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。