php中文网

10 对 -3 取余,结果是 1 还是 -2?Java 和 MySQL 的结果为何不同?

php中文网

10 对 -3 取余结果:1 还是 -2?

问题:

对 -3 取余时,10 的余数是 1 还是 -2?使用 java 和 mysql 计算得出的结果不同,这是否意味着这些函数存在错误?

答案:

立即学习“Java免费学习笔记(深入)”;

余数正负

余数可以是正数,也可以是负数。数学上计算余数的公式为:

余数 = 被除数 - 向下取整(被除数 / 除数) * 除数

根据该公式,10 对 -3 取余的结果为:

-10 = 10 - ⌊10 / (-3)⌋ * (-3)

向下取整后,结果为 -4,因此余数为:

-2

java 和 mysql 中的计算

java 中的 % 运算符和 mysql 中的 mod 函数都用于计算余数。然而,它们在处理负余数时有所不同。

  • java:总是返回非负余数,即使数学上为负数
  • mysql:根据除数的正负,可以返回正余数或负余数

结论

因此,两种方法都给出了正确的余数。java 和 mysql 的结果看似不同,是因为它们对负余数的处理方式不同。

理论 vs 实践

数学上,余数可以是负数。然而,在实际编程中,使用正余数通常更为方便和直观。因此,大多数编程语言选择返回正余数。

以上就是10 对 -3 取余,结果是 1 还是 -2?Java 和 MySQL 的结果为何不同?的详细内容,更多请关注php中文网其它相关文章!