이번에는 숫자형 함수 중에서 가장 많이 사용되는 ROUND() 함수입니다. 이 함수는 매개변수로 들어온 값을 반올림하는데, 두 번째 매개변수에 지정된 숫자만큼 첫 번째 매개변수의 소수점 이하 자릿수를 반올림해 반환합니다. 두 번째 매개변수가 n이라면 첫 번째 매개변수에서 n+1자리의 숫자를 반올림해 최종 결과는 n자리까지만 반환합니다.
ROUND() 함수의 반환값을 다음 그림을 보면서 계산해 보죠.
▲ 그림 6-2 ROUND 함수의 작동 원리
ROUND(2.4536, 1)은 두 번째 매개변수가 1이므로 반환값은 소수점 이하 첫째 자리까지 나와야 합니다. 따라서 소수점 이하 둘째 자리인 5를 반올림해서 결과는 2.5가 됩니다. ROUND(2.4536, 2)는 두 번째 매개변수가 2이므로 소수점 이하 셋째 자리인 3에서 반올림해야 합니다. 따라서 2.45가 반환됩니다. 같은 원리로 ROUND(2.4536, 3)은 소수점 이하 넷째 자리인 6에서 반올림되어 2.454가 반환됩니다.
ROUND(2.4536, 0)은 두 번째 매개변수가 0이므로 소수점 이하 자릿수가 없습니다. 반환 결과는 소수점 이하 숫자가 없어야 하므로 소수점 첫째 자리인 4에서 반올림해 결과는 2가 됩니다. 마지막으로 ROUND(2.4536)은 두 번째 매개변수가 없는데, 이처럼 두 번째 매개변수를 생략하면 0이 적용되어 역시 2가 반환됩니다.
코드 6-9
SELECT ROUND(1153.456, -1), ROUND(1153.456, -2),
TRUNCATE(2.4536, 2), TRUNCATE(1153.456, -2);
실행결과