ホームページ > バックエンド開発 > PHPチュートリアル > PHP 浮動小数点数が不正確になるのはなぜですか?それを修正するにはどうすればよいですか?

PHP 浮動小数点数が不正確になるのはなぜですか?それを修正するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-31 14:09:15
オリジナル
1005 人が閲覧しました

Why Are PHP Floating-Point Numbers Inaccurate, and How Can I Fix It?

PHP 浮動小数点数の精度: 予期せぬことをわかりやすく理解する

PHP では、バイナリの固有の性質により、浮動小数点数が予期しない結果をもたらす可能性があります。算術。実数とは異なり、バイナリ浮動小数点数は限られた精度で表現されるため、近似値や不正確性が生じる可能性があります。

次の例を考えてみましょう。

$a = '35';
$b = '-34.99';
echo ($a + $b);
ログイン後にコピー

これは、予期される 0.01 ではなく 0.009999999999998 を出力します。これは、34.99 と 0.01 をバイナリで正確に表すことができず、近似表現になるためです。

この問題を解決するには、次の代替案を検討してください。

  • 結果の四捨五入: 結果を小数第 2 位に四捨五入するには、round($result, 2) を使用します。
  • 整数の使用: 通貨計算の場合、値を整数として保存します。たとえば、$35.00 を 3500、$34.99 を 3499 と表し、計算後に結果を 100 で割ります。

PHP には他の言語にある専用の 10 進データ型がないことに注意してください。これにより、改善される可能性があります。特定のシナリオでの精度。ただし、浮動小数点演算の制限を理解することで、開発者は予期しない結果を軽減し、正確な計算を保証できます。

以上がPHP 浮動小数点数が不正確になるのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート