mod函數采用floor,rem函數采用fix函數。那么什么是floor和fix?
- fix(x):截尾取整。如:
>> fix([3.4 , -3.4])
ans =
3 -3
- floor(x):高斯取整(不超過x的最大整數)。如:
>> floor([3.4 , -3.4])
ans =
3 -4
PS:順便再說下另外兩個取整函數ceil()和round()
ceil(x) : 大於x 的最小整數。如:
>> ceil([3.4 , -3.4])
ans =
4 -3
round(x):四舍五入取整。如:
>> round([3.4 , 3.6 , -3.4 , -3.6])
ans =
3 4 -3 -4
總結為:fix朝零方向取整,floor朝負無窮方向取整,ceil朝正無窮方向取整,round四舍五入到最近的整數
下面說回取模的事情……
公式是:值 = 被除數 - (商 * 除數)(商通過floor函數得到)
如mod(-1000 , 201) = -1000 - (-5 * 201) = 5
而mod(1000 , -201) = 1000 - (-5 * -201) = -5
rem也同理,用該公式計算,不過是使用的fix函數。對於小數也同樣適用。