Java和python中的正负数取余计算的区别

对取余计算:a%b
1.当a和b都是正数的时候,Java和python的计算结果是一样的。
2.当a和b至少有一个为负数的时候,Java和python的计算结果就可能不一样了。
那到底是谁的正确呢?
首先,通过试做一些运算,可知Java的结果才是正确的!
那是为什么出现这种现象呢?
原因是Java和python取余计算所采用的公式不同造成的,他们所采取的计算是:
Java: r = a - (a / b) x b
python: r = a - (a / / b) x b
其中r是余数,a是被取余数,b是取余数(哈哈哈哈····借用除法中被除数和除数的说法,不知这种说法可否)
“/ /” 是python才有的运算符,意思是向下取整,例如,当a/b为-3.2的时候,则a//b的结果不是-3而是-4
因为对负数来说,-3>-3.2, -4<3.2, 所以-3.2向下取整的结果是-4
而Java所采用的公式中,当a/b为-3.2的时候,直接转成int类型取整的结果为-3
所以此时,上面两个公式在小括号地方的计算结果出现了不同
这就是Java和Python作负数取余运算时,结果不一样的原因!!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值