gpt4 book ai didi

php - 为什么取模运算符在 Perl 和 PHP 中的行为不同?

转载 作者:可可西里 更新时间:2023-11-01 12:27:23 25 4
gpt4 key购买 nike

我有这个不适用于负数的 PHP 函数:

function isOdd($num) 
{
return $num % 2 == 1;
}

但它适用于正数。

我有这个 Perl 例程,它做完全相同的事情并且也适用于负数

sub isOdd()
{
my ($num) = @_;
return $num % 2 == 1;
}

我在翻译这个函数时犯了什么错误吗?还是 PHP 错误?

最佳答案

在 PHP 中,x % y 结果的符号是 dividend 的符号,它是 x
在 Perl 中,它是 除数 的符号,即 y

因此在 PHP 中,$num % 2 的结果可以是 1-10.

因此修复你的函数,将结果与 0 进行比较:

function isOdd($num) { 
return $num % 2 != 0;
}

关于php - 为什么取模运算符在 Perl 和 PHP 中的行为不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5163357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com