モジュラス演算子は剰余を表示することになっています。echo(34%100)
出力のように34
。しかし、なぜDivision by zero
このコードで " " エラーが発生するのですか?echo(34%4294967296)
12793 次
4 に答える
7
「モジュラス使用時のゼロ除算エラー」を検索してこの質問を見つけましたが、その理由は異なりました。
分母が 1 より小さい場合、モジュラス (%
演算子) は機能しません。fmod()を使用すると、問題が解決します。
例:
$num = 5.1;
$den = .25;
echo ($num % $den);
// Outputs Warning: Division by zero
echo fmod($num, $den);
// Outputs 0.1
$num = 5.1;
$den = 1;
echo ($num % $den);
// Outputs 0, which is incorrect
echo fmod($num, $den);
// Outputs 0.1, which is correct
于 2014-08-31T19:16:27.727 に答える
2
php で大きな整数を使用すると mod がおかしくなるという報告がたくさんあります。計算のオーバーフロー、またはバグを引き起こす数値自体のオーバーフローである可能性があります。そのためには、多数のライブラリを使用するのが最善です。gmp または bcmath をチェックしてください。
于 2013-08-06T00:26:16.813 に答える