使用模数表示浮点值

时间:2014-10-22 09:47:00

标签: php

这可能很容易,但我很难搞清楚。我正在使用模数运算符进行一些计算,我遇到了一个问题。

因此,如果在除以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";
}

3 个答案:

答案 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()是关键。