有人可以向我解释我是否应该使用 bcpow() 而不是 pow() 吗?为什么?
我了解并非所有 php 安装都启用了 bcmath。因此,如果我编写一个开源项目,并且希望尽可能少的依赖项/要求,我宁愿在我的代码中使用 pow()。
但是使用 pow() 而不是 bcpow() 的缺点是什么?
bcpow()
是BCMath 任意精度数学库的一个函数。
引用它的手册的介绍:
对于任意精度数学,PHP 提供了二进制计算器,它 支持任意大小和精度的数字,以字符串表示。
另一方面,pow()
仅限于floats,其大小有限(引用):
浮点数的大小取决于平台,尽管最大约 1.8e308 和大约 14 位十进制数字的精度是一个常见值(64 位 IEEE 格式)
通常,您将使用pow()
其他基于浮点的函数(可能更快,并且始终启用);但是,如果您需要处理非常大的数字,则必须使用bcpow()
.
bcpow
用于任意精度值。作为第三个参数,您可以指定逗号后的位数。