0

我在 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);
   ...
}
4

1 回答 1

1

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

于 2012-07-03T02:07:21.570 回答