MOD 및 REMAINDER 함수 모두 두 값을 나눈 후 나머지를 반환합니다. 그러나 MOD는 알고리즘에서 FLOOR 함수를 사용하고 REMAINDER는 대신 ROUND 함수를 사용합니다. 이러한 차이로 인해 결과가 달라질 수 있습니다. 예를 들어, MOD (34.5, 3)을 호출하면 1.5를 반환합니다. REMAINDER (34.5, 3)을 호출하면 -1.5를 반환합니다. REMAINDER의 경우 n이 0일 수 없습니다.
두 함수의 공식은 다음과 같습니다.
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 |