pow()の代わりにbcpow()を使用する必要があるかどうか、およびその理由を誰かに説明してもらえますか?
phpのすべてのインストールでbcmathが有効になっているわけではないことを理解しています。したがって、オープンソースプロジェクトを作成し、依存関係/要件をできるだけ少なくしたい場合は、コードでpow()を使用します。
しかし、bcpow()よりもpow()を使用することの欠点は何ですか?
bcpow()
BCMath任意精度数学ライブラリの機能です。
マニュアルの紹介を引用:
任意精度の数学のために、PHPは、 文字列として表される任意のサイズと精度の数値をサポートする2進計算機を提供します。
一方、サイズが制限されているフロートに制限されていますpow()
(引用符):
浮動小数点のサイズはプラットフォームに依存しますが、小数点以下約14桁の精度で最大約1.8e308が一般的な値です(64ビットIEEE形式)。
一般に、pow()
その他のfloatベースの関数(おそらくより高速で、常に有効になっています)を使用します。ただし、非常に大きな数を処理する必要がある場合は、を使用する必要がありますbcpow()
。
マニュアルによると、bc*
機能は
[...]任意精度の数学PHPは、文字列として表される任意のサイズと精度の数値をサポートする2進計算機を提供します。
pow()
は、それが実行されているシステムでサポートされている最大の数値表現に制限されています。
bcpow
任意精度値に使用されます。3番目のパラメーターとして、コマの後の桁数を指定できます。