3

有人可以向我解释我是否应该使用 bcpow() 而不是 pow() 吗?为什么?

我了解并非所有 php 安装都启用了 bcmath。因此,如果我编写一个开源项目,并且希望尽可能少的依赖项/要求,我宁愿在我的代码中使用 pow()。

但是使用 pow() 而不是 bcpow() 的缺点是什么?

4

3 回答 3

6

bcpow()BCMath 任意精度数学库的一个函数。

引用它的手册的介绍:

对于任意精度数学,PHP 提供了二进制计算器,它 支持任意大小和精度的数字,以字符串表示。


另一方面,pow()仅限于floats,其大小有限(引用)

浮点数的大小取决于平台,尽管最大约 1.8e308 和大约 14 位十进制数字的精度是一个常见值(64 位 IEEE 格式)


通常,您将使用pow()其他基于浮点的函数(可能更快,并且始终启用);但是,如果您需要处理非常大的数字,则必须使用bcpow().

于 2011-03-02T11:45:05.207 回答
0

根据手册bc*功能是

[...] 任意精度数学 PHP 提供二进制计算器,它支持任何大小和精度的数字,以字符串表示。

pow()仅限于运行它的系统上支持的最大数字表示。

于 2011-03-02T11:45:20.430 回答
0

bcpow用于任意精度值。作为第三个参数,您可以指定逗号后的位数。

于 2011-03-02T11:45:21.867 回答