関数 MOD と REMAINDER は両方とも、2 つの数の除算の剰余を返します。相違点は、MOD はアルゴリズムで関数 FLOOR を使用し、REMAINDER は関数 ROUND を使用することです。この違いは結果に影響します。たとえば、MOD (34.5, 3) を呼び出すと 1.5 が返されます。REMAINDER (34.5, 3) を呼び出すと -1.5 が返されます。REMAINDER の場合、n がゼロに等しくなることはありません。
2 つの関数の式は次のとおりです。
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 |