php - 无法解释 php 取模结果

标签 php modulo mod

有人可以解释一下这是怎么回事吗?

-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_modhttps://www.php.net/manual/en/function.gmp-mod.php

这帮助我走上了正确的轨道: https://www.omnicalculator.com/math/modulo

关于php - 无法解释 php 取模结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57762791/

相关文章:

javascript - 使用 window.open() AND ' 的多个窗口

php - Symfony 2 网页目录重命名

php - 在 php 中,我想将 s3 文件下载到浏览器而不将其存储在我的服务器上

Kotlin 负模返回负值

algorithm - 算法中的模块化反演

php - 将 JavaScript 变量发送到 PHP

c - 循环未按预期运行

C - 模 (%),如何计算 IntToString 转换的值,其中 num/= 10

javascript - 1 (mod N) 是什么意思?