函数 MOD 和 REMAINDER 都返回两个数字相除后所得的余数。不同点是,MOD 在其算法中使用函数 FLOOR,而 REMAINDER 则使用函数 ROUND。这种差异会影响结果。例如,调用 MOD (34.5, 3) 将返回 1.5。调用 REMAINDER (34.5, 3) 将返回 -1.5。对于 REMAINDER,n 不能为零。
用于这两个函数的公式为:
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 |