0

この行は 2 つの異なるファイルにありますが、同じアプリケーションにあります。

pow(36, 8);

1 つは -INF を返し、もう 1 つは 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 Math 関数bcpowを使用してみてくださいpow

于 2012-07-03T02:07:21.570 に答える