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