模数运算符应该显示余数.喜欢echo(34%100)输出34.但是为什么我的Division by zero代码会出现" "错误echo(34%4294967296)
https://bugs.php.net/bug.php?id=51731
2^31 is the largest integer you can get on Windows.
如果您仍想修改大数字,请使用bcmod.
我发现这个问题搜索“使用模数时除以零误差”,但原因不同。
%当分母小于 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
Run Code Online (Sandbox Code Playgroud)