PHP检查值是偶数还是奇数?

时间:2011-04-01 08:09:34

标签: php if-statement

如何检查值是偶数还是奇数?

while ($N=0 > 6; ++$N) { // might be mistake here but it just here for demonstration my cod differs
    ++$CELL;
    echo ($CELL/3)." - ";
    if(($CELL/3) % 2) {                        
        echo ($CELL/3)." (odd) <br>";
    } else {
        echo ($CELL/3)." (even) <br>";    
        echo "<tr>";
        };

   };

有人可以解释为什么它会继续输出

0.333333333333 - 0.333333333333 (even)
0.666666666667 - 0.666666666667 (even)
1 - 1 (odd)
1.33333333333 - 1.33333333333 (odd)
1.66666666667 - 1.66666666667 (odd)
2 - 2 (even) 

不应该是

0.333333333333 - 0.333333333333 (even)
0.666666666667 - 0.666666666667 (even)
1 - 1 (odd)
1.33333333333 - 1.33333333333 (even)
1.66666666667 - 1.66666666667 (even)
2 - 2 (odd) 
有点混乱甚至奇怪,但它不是重点......是否有更好的方法来检查价值是否均匀?

7 个答案:

答案 0 :(得分:6)

如果您的意图是每第三行根据您的示例“奇怪”,那么您需要:

if ($N % 3 == 2) {
   // odd
} else {
   // even
}

答案 1 :(得分:3)

使用此代码

非常简单
 while ($N=0 $N > 6; $N++) {
        if ($N%2==0){
          echo 'Value is even';
       } else {
          echo 'value is odd';
       }

    }

答案 2 :(得分:1)

  “有点混乱甚至奇怪”

你,我的朋友,是轻描淡写的王。

如果您想检查数字是否没有小数组件,则需要将其转换为整数并将其与原始数字进行比较。

$v = 3.4;
if ($v == (int)$v) {
  echo "Integer";
} else {
  echo "Fractional";
}

答案 3 :(得分:1)

我猜你想要在检查它是偶数还是奇数之前进行整理。使用ceil函数将其四舍五入。

if(ceil($CELL/3) % 2) {                        
        echo ($CELL/3)." (odd) <br>";
    } else {
        echo ($CELL/3)." (even) <br>";    
        echo "<tr>";
        };

但是2绝对是偶数

答案 4 :(得分:1)

实际上,检查分数是奇数还是偶数是没有意义的。 当模数2为0时,数字甚至。 例如,如果将任何小数除以2,它将始终为奇数,只是因为如果将该数除以2,则没有确切的结果。

所以,请告诉我们您在这里要做些什么,以便我们能够更好地帮助您

答案 5 :(得分:0)

  

在处理之前,模数的操作数被转换为整数(通过去除小数部分)。

http://www.php.net/manual/en/language.operators.arithmetic.php

答案 6 :(得分:0)

使用ImageView(mod)运算符。

%