刚刚遇到这个问题,你介意解释一下这最终会得到4的答案吗? 如此基本但我不知道它是如何发生的。
echo $a = 20%-8; //4
答案:
echo (5 % 3)."\n"; // prints 2
echo (5 % -3)."\n"; // prints 2
echo (-5 % 3)."\n"; // prints -2
echo (-5 % -3)."\n"; // prints -2
答案 0 :(得分:2)
%运算符将保留操作提醒。那是$x % $y
将导致$x
的剩余部分除以$y
。
这里,当20除以-8时,它会留下提示4,这就是答案。
答案 1 :(得分:1)
你正试图得到负数的模数。这与:20%8
请参阅:https://math.stackexchange.com/questions/519845/modulo-of-a-negative-number
答案 2 :(得分:1)
@bwaaaaaa,模数运算符会提示操作。
Suppose $x % $y, that means that Remainder of $x divided by $y.
因此,对于你的例子,当20除以-8时会给你提醒4,所以它的输出是4。
了解更多信息。关于modulas运算符,请访问this
答案 3 :(得分:0)
当一个操作数除以第二个操作数时,余数运算符返回剩余的余数。记住模数运算符结果总是采用被除数的符号,而不是除数。它使用内置的模数函数来产生结果,这是var1除以var2的整数余数。
所以在你的代码中,var1是20,它是正整数,var2是-8,它是负整数。 20是被除数,-8是除数。
所以我们知道模块运算符结果会采用被除数的符号,而不是除数。这就是为什么提醒答案只有4。 希望现在很清楚。谢谢