-
取整方式
-
quot 是整数除法截至零
-
rem 是整数余数,满足:(x
quot
y)*y + (xrem
y) == x
-
-
取余方式
-
div 是整数除法向负无穷大截断
-
mod 是整数模量,满足:(x
div
y)*y + (xmod
y) == x
-
|| div 和 quot 的区别
div向下取整(无穷小),而quot向零取整(0方向,正数向下取整,负数向上取整)
|| rem 和mod 的区别 是求余与求模的区别。
例如:(-20) / 3 = -6.66666… ,rem直接舍去小数得 -6,余数为(-20)-( 3 * (-6)) = -2;
mod 向下取整得-7,然后得到余数:(-20)- (3 * (-7)) = 1;
总结:取余方式的rem 和 mod 之间的差异源于于其取整方式的区别(div/quot),在正数是有一样的取整规则(向下),而在负数时有相反的取整规则(向上)
|| 示例:
--当使用负数作为第二个参数并且结果不为零时,可以看出差异:
5 `mod` 3 == 2
5 `rem` 3 == 2
5 `mod` (-3) == -1
5 `rem` (-3) == 2
(-5) `mod` 3 == 1
(-5) `rem` 3 == -2
(-5) `mod` (-3) == -2
(-5) `rem` (-3) == -2