Python에는 숫자를 손쉽게 반올림할 수 있는 내장 함수 round()가 포함되어 있습니다. 별도의 라이브러리 설치 없이 바로 사용할 수 있어 실무와 학습 모두에서 자주 활용됩니다.
round() 함수의 기본 구조
Python의 round() 메서드는 두 개의 매개변수를 받습니다.
첫 번째 매개변수: 반올림할 대상 숫자
두 번째 매개변수: 반올림할 소수점 이하 자릿수
이때 두 번째 매개변수는 선택 사항(optional)입니다.
두 번째 매개변수가 없는 경우
두 번째 매개변수를 지정하지 않으면, round() 메서드는 floor()와 ceil() 방식을 참고하여 정수를 반환합니다. 함수는 소수점 뒤의 숫자들을 확인한 뒤 다음과 같이 동작합니다.
소수점 이하 숫자가 5보다 작으면 전달된 숫자의 floor 값(내림)을 반환합니다.
소수점 이하 숫자가 5보다 크면 전달된 숫자의 ceil 값(올림)을 반환합니다.
정수가 전달되면 그대로 동일한 정수를 반환합니다.
아래 구현 예시를 보면 더욱 명확하게 이해할 수 있습니다.
예제
print(round(15))
print(round(15.2))
print(round(15.8))
print(round(15.128))
print(round(15.89))
출력 결과
15
15
16
15
16
결과 해설
정수 15가 전달되었으므로 동일한 정수가 반환되어 출력은 15입니다.
15.2의 경우 소수점 이하 숫자가 5보다 작으므로 floor 값인 15가 반환됩니다.
15.8의 경우 소수점 이하 숫자가 5보다 크므로 ceil 값인 16이 반환됩니다.
15.128의 경우 소수점 이하 숫자(128)가 500보다 작으므로 floor 값인 15가 반환됩니다.
15.89의 경우 소수점 이하 숫자(89)가 50보다 크므로 ceil 값인 16이 반환됩니다.
참고: 두 번째 매개변수 없이 호출한 경우 모든 출력 결과는 정수(integer) 값입니다.
두 번째 매개변수가 있는 경우
두 번째 매개변수는 숫자를 몇 번째 자릿수까지 반올림할지 지정합니다. 이 경우 round() 함수의 동작 방식은 수학에서 일반적으로 계산하는 반올림과 동일합니다.
정수 값이 전달되면 동일한 정수 값이 그대로 반환됩니다.
실수가 전달되면 지정된 자릿수까지 반올림된 부동소수점(float) 숫자가 반환됩니다.
예제
print(round(15,2))
print(round(15.2789,3))
print(round(15.82,1))
print(round(15.128,2))
print(round(15.8902,2))
출력 결과
15
15.279
15.8
15.13
15.89
결과 해설
숫자가 15.2789이고 자릿수가 3으로 지정된 경우, 소수점 넷째 자리 숫자가 5보다 크므로 셋째 자리(마지막 지정 자릿수)가 1 증가하여 15.279가 됩니다.
숫자가 15.82이고 자릿수가 1로 지정된 경우, 소수점 둘째 자리 숫자가 5보다 작으므로 첫째 자리는 증가하지 않아 15.8이 됩니다.
이처럼 round() 함수는 두 번째 매개변수의 유무에 따라 반환 결과가 달라지므로, 원하는 출력 형태에 맞게 적절히 활용하는 것이 중요합니다.