Les fonctions MOD et REMAINDER renvoient toutes les deux le reste de la division de deux nombres. La différence réside dans le fait que MOD fait appel dans son algorithme à la fonction FLOOR et REMAINDER à la fonction ROUND. Cette différence peut avoir une incidence sur le résultat. Par exemple, l'appel de MOD (34.5, 3) renvoie 1.5. L'appel REMAINDER (34.5, 3) renvoie -1.5. Pour REMAINDER, n ne peut pas être égal à zéro.
Les formules correspondant aux deux fonctions sont les suivantes :
MOD (m, n) = SIGN (m) * (ABS(m) - (ABS (n) * FLOOR(ABS (m) / ABS (n))))
REMAINDER (m,n) = m - (n*ROUND (m/n)
Le tableau suivant montre les différences de résultats que peuvent présenter ces fonctions :
Si m= | Et n= | MOD (m,n) renvoie | REMAINDER (m,n) renvoie |
---|---|---|---|
11 | 4 | 3 | -1 |
11 | -4 | 3 | -1 |
-11 | 4 | -3 | 1 |
-11 | -4 | -3 | 1 |