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 |