关于java中Math.floorMod()函数的疑惑
#在数学中,求余是一件很平常的事情,直到大学学了数据库,java了解到了取模运算,便一段时间开始认为取模和求余是没有区别的,但是在java中,取模用到了floorMod函数,这个函数的过程是求出x - x/y小于商的最大整数在乘上y =最后的结果(模).
显然这个跟我们平时求模想像的不一样,诶,不应该是x-(x/y)*y之后就是模值了??
这两个算式显然不一样。
eg. floorMod(8,3) 猜猜等于多少 8%3又等于多少 后面一个应该很简单 ->2
前面一个结果是8-(8/3)向下取整 *3 发现还是等于2 当然这是我们的常识区
在正整数的值域下 求余 /求模都是一样的结果
反之 负整数
eg.floorMod(-8,3) 猜猜 我们知道-8%3== - 2
floorMod(-8.3)当然不等于-2 它等于-1 why?
-8-(-8/3)向下取整*3 你可以知道 向下取整为-3 这里就是取余和求模的区别
所以这个值是 1
那么求模就不完全等于取余。。。。。。
在说一下这个符号问题 求模的时候 符号与 除数相关 求余的时候与被除数相关
错误之处还请指出,蟹蟹。
---------------------纪录于2019-5-1
---------------------分享小细节.