<?php
$res = pow(5, pow(5, pow(5, pow(5, 5))));
echo $res;
输出:
INF
我知道它不能存储在64位浮点数中,但有没有办法计算这种大数? 我所有的尝试都失败了(总是这个“INF”)。
编辑:是的,我知道这个数字是巨大的,而这正是我想要计算的。 另外,我试图在没有扩展的情况下这样做(除非我完全理解扩展的功能,并且我能够自己编写代码)。答案 0 :(得分:1)
修改强> 如评论中所述,GMP extension可能有效,可能更适合整数数学。
另一位意见提供者建议提供比链接更多的信息。在这个和其他答案中提到的扩展比标准的内置php函数更适合更大的整数或更精确的浮点数。
但是......您可能无法将结果与gmp_pow
结合起来,就像您在问题中一样。首先,你需要php 5.6来使用gmp数作为gmp_pow的参数。
另一方面,这个数字太大了,您可能需要使用gmp_powm,正如in this answer所述
原始答案 您可以尝试BCMath extension,但默认情况下可能无法安装。 (尽管BCMath可能更适合使用浮点而不是Ints)
答案 1 :(得分:0)
您可以尝试使用http://pear.php.net/package/Math_BigInteger/docs 它可以通过梨安装
答案 2 :(得分:0)
这两个会有所帮助 - BC数学扩展 - GMP库