PHP模怪癖

PHP模怪癖,php,calculator,modulo,Php,Calculator,Modulo,我对php的模运算一定了解得不够。我得到了一个奇怪的结果 echo (-38 % 26); results in -12 这似乎是我的正确答案。谷歌计算器返回14。这是我正在做的练习的正确答案 怎么回事 摘自PHP手册: 模运算符%的结果与被除数具有相同的符号 -也就是说,$a%$b的结果将具有与$a相同的符号 不同的语言定义余数的不同符号(Python将使用除数,而PHP使用除数)。您可以在上面阅读更多有关它的信息。您需要使用 echo ((-38 + 26) % 26); 您可以按照自己

我对php的模运算一定了解得不够。我得到了一个奇怪的结果

echo (-38 % 26); results in -12
这似乎是我的正确答案。谷歌计算器返回14。这是我正在做的练习的正确答案

怎么回事


摘自PHP手册:

模运算符
%
的结果与被除数具有相同的符号 -也就是说,
$a%$b
的结果将具有与
$a
相同的符号

不同的语言定义余数的不同符号(Python将使用除数,而PHP使用除数)。您可以在上面阅读更多有关它的信息。

您需要使用

echo ((-38 + 26) % 26);
您可以按照自己的意愿创建一个与正$a和负$a一起工作的函数:

function modulo($a, $b) { return ($a + $b) % $b; }

不幸的是,我对这个问题的了解还不够多,无法回答这个问题,但这在编程中是很常见的。模想要留下一个正余数,使用负数是没有意义的。Wolfram Alpha也报告了答案为14。因为模需要正的结果,所以-12+26是14,但我不确定它是否应该是正数tanks@kmlnvm,这很有帮助。我更关心的是数值,而不是符号。我认为@kmlnvm最接近于解释。