PHP - 来自pow()的奇怪,不一致的结果

时间:2012-07-03 02:02:43

标签: php exponential

我在2个不同的文件中使用此行但在同一个应用程序中。

pow(36, 8);

一个返回-INF而另一个返回2821109907456

是否有任何我不知道的外部因素导致这种情况?因为我没有看到输入是问题,因为它们完全相同。

编辑:返回-INF的代码包含在foreach中。想到这可能会让我们知道为什么会发生这种情况。

编辑2: 循环看起来像这样

foreach($items as &$item)
{
  foo($item['some_index'], ... , ..., ...);
}
unset($item);

循环调用的函数类似于

function foo($input, $a, $b, $c)
{
   ....
   $x = pow(36, 8);
   ...
}

1 个答案:

答案 0 :(得分:1)

整数的大小取决于平台,您可能达到最大值。尝试使用BC Math函数bcpow代替pow

相关问题