今天在偶然得一次机会知道取模和求余是不相同得。
对取余和取模定义不同的语言中,两者的不同点只有一个
先自我总结一下它们得区别:
c=a/b;
在上面这个式子上知道,如果a和b得符号(不是类型是符号正负号)是一样得话,取模和求余是一样得,但是在a和b得符号不是一样得时候,取模是向下取整,而求余是向上取整。这个在哪里又不同那?
这个在涉及到负数得时候就会不同。(在这里提一下:余数只能是自然数,不能为负数),取模得话与b的符号相同,求余的话是与a的符号相同。上面的理由就是他们不同的原因。
取模(python里面是取模)
5 mod -3 = -1
取余(c,c++,java里面都是取余)
Java中我们如何实现取模呢?在Math中提供了这个函数Math.floorMod,用于我们进行取模,我们有下面的代码进行验证:
public static void main(String[] args) { System.out.println("取模" + Math.floorMod(3, -5)); System.out.println("求余" + 3 % -5); } // 取模-2 // 求余3
参考了https://cloud.tencent.com/developer/article/1520164
https://blog.csdn.net/coder_panyy/article/details/73743722
如下俩位文档。
原文:https://www.cnblogs.com/chenjiaolong/p/13468097.html