PHP中的大数字

时间:2014-06-29 17:21:31

标签: php numbers

我一直在玩PHP中的大数字,只是想知道它用来计算大数字的模块/进程,以及为什么它不用于所有PHP数字函数。

希望这能解释得更好

我的PHP_INT_MAX是2147483647(31位)

但是,我想通过使用:

可以创建一个1017位的数字
$largenumber = pow(142,142);

这个数字是310位数,所以我不会把它贴在这里......

但是如果我然后尝试将其转换为二进制文件:

decbin($largenumber);

我得到1111111111111111111111111111111(31位...... PHP_INT_MAX

那么,如果pow()函数可以处理这么大的数字,为什么decbin()函数不能处理呢?

1 个答案:

答案 0 :(得分:2)

来自pow上的官方PHP文档:

  

基地提升到exp的力量。如果两个参数都是非负的   整数和结果可以表示为整数,结果   将以整数类型返回,否则将返回为   浮。

$largenumber = pow(142,142);
var_dump($largenumber); //float(INF)

pow会返回floatdecbin会尝试转换为int,并且您将超过最大整数值。