PHP模数怪癖

时间:2015-03-09 21:11:08

标签: php calculator modulo

我对php的modulo一定不太了解。我得到了一个奇怪的结果。

echo (-38 % 26); results in -12

这对我来说似乎是正确的答案。谷歌计算器正在返回14.这是我正在进行的练习的正确答案。

该怎么做?

(-38)modulo 26=

2 个答案:

答案 0 :(得分:2)

摘自arthimetic上的PHP手册:

  

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

各种语言定义余数将采用不同的符号(例如,Python将使用除数,而PHP使用除数。)您可以在wikipedia上阅读更多关于它的信息。

答案 1 :(得分:0)

您需要使用

echo ((-38 + 26) % 26);

您可以根据需要制作一个与正负$ a一起使用的函数:

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