取模运算与取余运算的相同点
-
公式相同:
取模运算: A
mod
B = A - (A / B) * B
取余运算: Arem
B = A - (A / B) * B
取模运算与取余运算的不同点
-
对于
A / B
的定义不同:取模运算在计算
A / B
的值时,向负无穷方向取整(floor()
函数)
取余运算在计算A / B
的值时,向0 方向取整(fix()
函数) -
举例说明:
-3 / 2 = -1.5
取模运算时,将 -1.5 向负无穷方向取整,得到 -2
取余运算时,将 -1.5 向0方向取整,得到 -1所以,
-3mod
2 = -3 - (-2) * 2 = 1
-3rem
2 = -3 - (-1) * 2 = -1
总结
取余运算与取模运算在两数为同号时,结果相同;当两数异号时,结果不同。