As funções MOD e REMAINDER retornam o resto da divisão de dois números. A diferença é que MOD utiliza a função FLOOR em seu algoritmo e REMAINDER utiliza a função ROUND. Essa diferença pode afetar o resultado. Por exemplo, a chamada para MOD (34.5, 3) retorna 1.5. A chamada REMAINDER (34.5, 3) retorna -1.5. Para REMAINDER, n não pode ser igual a zero.
As fórmulas para as duas funções são:
MOD (m, n) = SIGN (m) * (ABS(m) - (ABS (n) * FLOOR(ABS (m) / ABS (n))))
REMAINDER (m,n) = m - (n*ROUND (m/n)
É possível ver as diferenças que podem resultar examinando a seguinte tabela:
Se m= | E n= | MOD (m,n) retorna | REMAINDER (m,n) retorna |
---|---|---|---|
11 | 4 | 3 | -1 |
11 | -4 | 3 | -1 |
-11 | 4 | -3 | 1 |
-11 | -4 | -3 | 1 |