这可能很容易,但我很难搞清楚。我正在使用模数运算符进行一些计算,我遇到了一个问题。
因此,如果在除以2之后有余数,%2应该给1,如果没有剩余则为0。见下文,为什么答案“有剩余”而不是“没有剩菜”?我是否反过来了?
$a = 5.5;
$b = 0.5;
if ( ( ( $a - $b ) / $b ) %2 == 0 ) {
echo "no leftovers";
} else {
echo "there is a leftover";
}
答案 0 :(得分:0)
代码正常运行。你从5.5中减去0.5得到5,然后将其除以2并检查余数,即为1.因此,"有一个剩余的"。
编辑:它按预期工作但我看到你编辑它除以0.5 - 为什么会这样?
答案 1 :(得分:0)
( $a - $b ) = 5.0
和5 % 2 = 1
所以结果将永远是"有一个剩余的"
答案 2 :(得分:0)
感谢Mark Baker。
$a = 5.5;
$b = 0.5;
if (fmod( ($a - $b), $b ) == 0 ) {
echo "no leftovers";
} else {
echo "there is a leftover";
}
处理浮动时,fmod()是关键。