mod函数中负数参数返回结果的规律总结

小伙伴们,大家好。我们之前在mod函数中用的参数都是正数,今天来看看如果参数中有负数会返回什么样的结果。先来看个简单的例子,如下图所示,AB两列分别是被除数和除数,C列是返回的余数,D列是公式。

为了对照,实际用了4种情况。第1种被除数8和除数5都是正数,8除以5余3,这个是最好理解的。第2种被除数8是正数,除数-5是负数,8除以-5余-2,这个就有点蒙了,怎么得到的?第3种-8除以5余2,第4种-8除以-5余-3,也不知道是怎么得到的。

其实,mod函数返回的结果有2个规律,如下图所示:

对于第1个,余数的符号与除数的符号相同,也就是说mod返回的结果是正数还是负数,要看除数是正数还是负数。除数是正数,mod返回的结果也是正数,反之就是负数。可以参考上图第2和第4种情况,当除数都为-5时,结果为负数。这一点确定了mod返回结果的正负号。

对于第2个,被除数与除数的符号相同,取多余的部分;否则取缺少的部分。主要是确定取值的问题,这样说可能不好理解。那就举个例子,可以把除数看作一个圆柱体的周长,被除数看作一条绳子,然后用绳子缠绕圆柱体,看看可以绕多少圈。

绕的整圈数就是商,多余的部分按理说就是余数。但是余数有2种取法。比如被除数(绳长)是8,除数(圆柱周长)是5,那么可以绕1圈,然后多余的部分是3。由于被除数和除数的符号一样,都是正数,所以余数就取多余的部分,也就是3。

如果被除数(绳长)是-8,除数(圆柱周长)是5,那么还是可以绕1圈,绕的时候先不看符号,都看作正数。多余的部分还是3。由于被除数和除数的符号不一样,一个正数一个负数,所以此时就不是取多余的部分3了,而是要取缺少的部分了。缺少的部分指的是还差多少可以绕满1整圈,1整圈是5,现在多余的部分是3,所以还差2可以绕满,那就取2。

所以多余的部分和缺少的部分是相对于整圈来说的。mod的第1个规律是确定正负号,第2个规律是确定取值。以=mod(-8,-5)说明一下,首先除数是负数,所以mod返回的结果是负数。然后由于被除数和除数符号相同,都是负数,所以取多余的部分3,最后的结果就是-3。

mod返回结果的规律就说到这里,下面看个例子吧。如下图所示,AB两列分别是开始时间和结束时间,求相差的时间。这个问题,正常来说就是用结束时间减去开始时间就可以了。但是如果像23:53到0:07这种情况,相减就是负数。所以需要判断一下,如果结束时间小于开始时间,就要加1。用if的公式就是下图所示。这个问题也可以用mod函数来做,在D24单元格输入公式=MOD(B24-A24,1),向下填充。

文件链接:

https://pan.baidu.com/s/1spCVp6cgerMT-m1eAVfhtw

提取码:rk37

(0)

相关推荐