Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有这个不适用于负数的 PHP 函数:
function isOdd($num) { return $num % 2 == 1; }
但它适用于正数。
我有这个 Perl 例程,它做同样的事情,也适用于负数
sub isOdd() { my ($num) = @_; return $num % 2 == 1; }
我在翻译函数时犯了任何错误吗?还是 PHP 错误?
在 PHP 中,结果x % y的符号是被除数的符号,x但 在 Perl 中,除数的符号是y 。
x % y
x
y
所以在 PHP 中,结果$num % 2可以是1,-1或0.
$num % 2
1
-1
0
所以修复你的函数将结果与0:
function isOdd($num) { return $num % 2 != 0; }