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 的结果为何不同?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~主机宝贝公众号也会发布数据库相关知识,快来关注吧!