PHP 浮動小数点計算の精度: 精度の課題の克服
PHP で浮動小数点計算を扱う場合、開発者は精度に関する課題に遭遇することがよくあります。この記事では、許容誤差 0.01 を使用して 2 つの浮動小数点値を比較しようとしたが、予期しない結果が発生したユーザーが直面した特定の問題に対処します。
問題を理解するために、提供されているコードを詳しく見てみましょう。
<code class="php">$fooValue = 100.68; $cowValue = 100.67; $diffValue = $fooValue - $cowValue; if($diffValue <= 0.01) { echo("success"); } else { echo("error"); }</code>
この例では、バイナリ表現の不正確さにより PHP の浮動小数点計算が正確ではないため、結果は「エラー」として出力されます。これは、$fooValue と $cowValue が数学的には 0.01 異なっていても、内部のバイナリ表現がこの値を完全に反映していない可能性があることを意味します。
この課題を克服するために、PHP は代替ソリューションを提供します。
以上がPHP Float の比較が不正確なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。