有人可以解释一下这是怎么回事吗?
-1 % 7 = 6 https://www.wolframalpha.com/input/?i=-1%257 ...但是
echo (-1 % 7)."\n"; // prints -1 WRONG
echo fmod(-1,7)."\n"; // prints -1 WRONG
我还尝试了 php.net 中的这些示例,它们都正确返回。
echo (5 % 3)."\n"; // prints 2
echo (5 % -3)."\n"; // prints 2
echo (-5 % 3)."\n"; // prints -2
echo (-5 % -3)."\n"; // prints -2
PHP 给出了一个我无法解释为 -1%7 的结果。它没有溢出 int 但我还是尝试了 fmod
,但我仍然遇到同样的问题(即看起来不是这个问题:php modulo return wrong result)
最佳答案
因此,事实证明 -1 是正确答案。这是“负余数”。我不是数学专业的,我不知道还有另一个有效的答案。我专门寻找非负余数(正常答案)。
事实证明我可以为此使用 gmp_mod
。
https://www.php.net/manual/en/function.gmp-mod.php
这帮助我走上了正确的轨道: https://www.omnicalculator.com/math/modulo
关于php - 无法解释 php 取模结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762791/