PHP の浮動小数点計算: 精度の制限について
PHP の float データ型は、他の多くのプログラミング言語の浮動小数点データ型と同様に、数値の不正確な表現。この不正確さは、コンピュータに数値データを保存するために使用される 10 進数の 10 進数と 2 進数の 2 進数の変換から発生します。
その結果、浮動小数点計算では期待値からの予期しない偏差が発生する可能性があります。 。たとえば、上記のコード スニペットは次のようになります。
$fooValue = 100.68;
$cowValue = 100.67;
$diffValue = $fooValue - $cowValue;
if($diffValue は、定義された値に基づいて「成功」が出力されると予想される場合でも、「エラー」を出力します。
精度の問題への対処
PHP でこれらの精度制限に対処するには、代替メソッドを使用できます。
- BC Math ライブラリ: BC Math ライブラリは、次の目的で設計された高精度の算術演算を提供する PHP 拡張機能です。浮動小数点計算に関連する不正確さを解決します。数値の 10 進表現を利用し、指定された 10 進精度内で正確な結果を保証します。
- GMP ライブラリ: GMP ライブラリ (GNU Multiple Precision Arithmetic Library) は、高度に最適化された C ライブラリです。高性能の整数演算。主に整数を操作しますが、さまざまな浮動小数点表現との間の変換が可能であり、精度の問題が軽減される可能性があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3