Mod 與 Remainder

函數 MODREMAINDER 均返回兩數相除所得的餘數。它們的差異在於 MOD 在其算法中使用函數 FLOOR,而 REMAINDER 使用函數 ROUND。此差異會影響結果。例如,呼叫 MOD (34.5, 3) 會傳回 1.5。呼叫 REMAINDER (34.5, 3) 會傳回 -1.5。對於 REMAINDERn 不能等於零。

這兩個函數的公式為:

MOD (m, n) = SIGN (m) * (ABS(m) - (ABS (n) * FLOOR(ABS (m) / ABS (n))))

REMAINDER (m,n) = m - (n*ROUND (m/n)

您可以查看下表來瞭解這兩個函數可能產生的差異:

如果 m= 且 n= MOD (m,n) 傳回 REMAINDER (m,n) 傳回
11 4 3 -1
11 -4 3 -1
-11 4 -3 1
-11 -4 -3 1