非常大的数字使bcpowmod溢出

时间:2013-01-22 20:24:02

标签: php

我需要在PHP中将8提高到17的幂。我在我的电脑计算器上检查了这是2251799813685248,但pow()bcpowmod()函数似乎都溢出了; pow()进入科学记数法,并回显bcpowmod()的结果,即使使用高三分参数也会给我一个空白屏幕。还有其他方法可以执行此计算吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用gmp_pow

gmp_pow("8", 17);

h2ooooooo建议 - 要使用结果:

gmp_strval(gmp_pow("8", 17));

同样bcpow也适合我

bcpow("8", "17")

答案 1 :(得分:1)

使用pow()。您所谈论的“科学记数法”只是一种符号,您可以稍后对其进行格式化。

echo number_format(pow(8,17), 0, '', '');

http://php.net/number-format

除此之外,我无法重现给定值的“科学符号” - 行为

http://codepad.viper-7.com/AwM3CS(使用更大的值来强制执行科学记数法)