3

pow()の代わりにbcpow()を使用する必要があるかどうか、およびその理由を誰かに説明してもらえますか?

phpのすべてのインストールでbcmathが有効になっているわけではないことを理解しています。したがって、オープンソースプロジェクトを作成し、依存関係/要件をできるだけ少なくしたい場合は、コードでpow()を使用します。

しかし、bcpow()よりもpow()を使用することの欠点は何ですか?

4

3 に答える 3

6

bcpow()BCMath任意精度数学ライブラリの機能です。

マニュアルの紹介を引用:

任意精度の数学のために、PHPは、 文字列として表される任意のサイズと精度の数値をサポートする2進計算機を提供します。


一方、サイズが制限されているフロートに制限されていますpow()引用符)

浮動小数点のサイズはプラットフォームに依存しますが、小数点以下約14桁の精度で最大約1.8e308が一般的な値です(64ビットIEEE形式)。


一般に、pow()その他のfloatベースの関数(おそらくより高速で、常に有効になっています)を使用します。ただし、非常に大きな数を処理する必要がある場合は、を使用する必要がありますbcpow()

于 2011-03-02T11:45:05.207 に答える
0

マニュアルによると、bc*機能は

[...]任意精度の数学PHPは、文字列として表される任意のサイズと精度の数値をサポートする2進計算機を提供します。

pow()は、それが実行されているシステムでサポートされている最大の数値表現に制限されています。

于 2011-03-02T11:45:20.430 に答える
0

bcpow任意精度値に使用されます。3番目のパラメーターとして、コマの後の桁数を指定できます。

于 2011-03-02T11:45:21.867 に答える