10 对 -3 取余,结果是 1 还是 -2?Java 和 MySQL 的结果为何不同?
10 对 -3 取余结果:1 还是 -2?
问题:
对 -3 取余时,10 的余数是 1 还是 -2?使用 java 和 mysql 计算得出的结果不同,这是否意味着这些函数存在错误?
答案:
余数正负
余数可以是正数,也可以是负数。数学上计算余数的公式为:
余数 = 被除数 - 向下取整(被除数 / 除数) * 除数
根据该公式,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 的结果为何不同?的详细内容,更多请关注其它相关文章!