检查 PHP 中给定的数字是偶数、奇数还是都不是?
Check if given number is Even, Odd or Neither in PHP?
如果一个数字是偶数或奇数或两者都不是(有小数,如 1.5
),我如何使用 PHP?我知道有 *
、/
等运算符,但它们没有用。
这里试一试(当然没有)(工作只是为了找出它是否是偶数):
function even($n) {
return (($n/2)*2 == $n);
}
echo even(1); // true (should be false)
echo even(2); // true
怎么样
function even($n) {
if (!is_int($n)) {return 'n';}
return !($n % 2);
}
even(1); // false;
even(2); // true;
even(1.5); // 'n'
这里的危险在于,如果用作布尔值,'n' 的计算结果将是 false
。 return 某些特定常量而不是 true 或 false 可能更好。 OP 没有指定 return 值应该是什么。
is_numeric
returns 如果给定变量是数字则为真
is_int
returns 如果给定变量是整数则为真
模运算符%
可用于确定整数是偶数还是奇数:
$num % 2 == 0 // returns true if even, false if odd
首先检查给定的数字是否为 integer
。并按位 &
检查它是偶数还是奇数。这是一个例子...
if (is_int($n)) {
if ($n & 1) {
echo 'Odd!';
} else {
echo 'Even!';
}
} else {
echo "Not a Integer!";
}
希望这对您有所帮助。
使用取模运算符(%
)判断整数是否能被2整除。你还需要abs()
处理负数,is_int()
处理模运算符不能正确处理浮点数。示例实现如下:
function is_even($num) {
return is_int($num) && abs($num % 2) == 0;
}
function is_odd($num) {
return is_int($num) && abs($num % 2) == 1;
}
// this last one seems self-explanatory, but if you want it, here it is
function is_neither_even_nor_odd($num) {
return !is_even($num) && !is_odd($num);
}
// Tests: The following should all output true:
var_dump(
is_even(0),
is_even(2),
is_even(-6),
is_even(51238238),
is_odd(1),
is_odd(-1),
is_odd(57),
is_neither_even_nor_odd(1.5),
is_neither_even_nor_odd(2.5),
is_neither_even_nor_odd(-0.5),
is_neither_even_nor_odd(0.00000001)
);
很简单。模数 (%) 是您想要的运算符,它确定如果 x 除以 y 是否会有余数...例如 (3 % 2 = 1) 和 (4 % 2 = 0)。
之前也有人问过这个问题 - 很常见的问题 - 你真的只需要看看你的数字 $n % 2 是否等于 0.
php test if number is odd or even
如果一个数字是偶数或奇数或两者都不是(有小数,如 1.5
),我如何使用 PHP?我知道有 *
、/
等运算符,但它们没有用。
这里试一试(当然没有)(工作只是为了找出它是否是偶数):
function even($n) {
return (($n/2)*2 == $n);
}
echo even(1); // true (should be false)
echo even(2); // true
怎么样
function even($n) {
if (!is_int($n)) {return 'n';}
return !($n % 2);
}
even(1); // false;
even(2); // true;
even(1.5); // 'n'
这里的危险在于,如果用作布尔值,'n' 的计算结果将是 false
。 return 某些特定常量而不是 true 或 false 可能更好。 OP 没有指定 return 值应该是什么。
is_numeric
returns 如果给定变量是数字则为真
is_int
returns 如果给定变量是整数则为真
模运算符%
可用于确定整数是偶数还是奇数:
$num % 2 == 0 // returns true if even, false if odd
首先检查给定的数字是否为 integer
。并按位 &
检查它是偶数还是奇数。这是一个例子...
if (is_int($n)) {
if ($n & 1) {
echo 'Odd!';
} else {
echo 'Even!';
}
} else {
echo "Not a Integer!";
}
希望这对您有所帮助。
使用取模运算符(%
)判断整数是否能被2整除。你还需要abs()
处理负数,is_int()
处理模运算符不能正确处理浮点数。示例实现如下:
function is_even($num) {
return is_int($num) && abs($num % 2) == 0;
}
function is_odd($num) {
return is_int($num) && abs($num % 2) == 1;
}
// this last one seems self-explanatory, but if you want it, here it is
function is_neither_even_nor_odd($num) {
return !is_even($num) && !is_odd($num);
}
// Tests: The following should all output true:
var_dump(
is_even(0),
is_even(2),
is_even(-6),
is_even(51238238),
is_odd(1),
is_odd(-1),
is_odd(57),
is_neither_even_nor_odd(1.5),
is_neither_even_nor_odd(2.5),
is_neither_even_nor_odd(-0.5),
is_neither_even_nor_odd(0.00000001)
);
很简单。模数 (%) 是您想要的运算符,它确定如果 x 除以 y 是否会有余数...例如 (3 % 2 = 1) 和 (4 % 2 = 0)。 之前也有人问过这个问题 - 很常见的问题 - 你真的只需要看看你的数字 $n % 2 是否等于 0.
php test if number is odd or even