Python 내장 함수 round()로 반올림하기
Python에는 부동 소수점 수를 반올림하기 위한 내장 함수 round()가 마련되어 있습니다. 이 함수는 두 개의 인자를 받습니다. 첫 번째 인자는 반올림할 숫자이고, 두 번째 인자는 반올림할 소수점 자릿수입니다. 가장 가까운 정수로 반올림하려면 두 번째 인자를 생략하면 됩니다.
>>> round(1.7456) 2 >>> round(1.4756) 1
위 예시에서 볼 수 있듯이, round()는 일반적인 사칙연산의 반올림 규칙에 따라 소수점 첫째 자리를 기준으로 가장 가까운 정수를 반환합니다.
소수점 자릿수 지정하기
두 번째 인자에 원하는 자릿수를 넣으면 특정 소수점 자리까지 반올림할 수도 있습니다.
>>> round(1.7456, 2) 1.75 >>> round(1.7456, 1) 1.7
항상 올림 처리하는 방법
반올림할 때 무조건 큰 쪽으로 올리고 싶다면, 반올림하기 전에 숫자에 0.5를 더해주면 됩니다.
>>> round(1.7456 + 0.5) 2 >>> round(1.4756 + 0.5) 2
round(1.4756)만 실행했을 때 결과가 1이었던 것과 달리, 0.5를 더한 뒤에는 2로 올림되는 것을 확인할 수 있습니다.
참고: math.ceil() 활용하기
항상 올림이 필요한 경우에는 표준 라이브러리의 math.ceil() 함수를 사용하는 것이 더 명확하고 권장되는 방법입니다.
>>> import math >>> math.ceil(1.4756) 2
알아두면 좋은 점: Python 3의 사사오입 방식
Python 3의 round()는 'banker's rounding(은행가 반올림)'이라 불리는 방식을 사용합니다. 즉, 반올림해야 할 값이 정확히 .5일 경우 가장 가까운 짝수로 반올림됩니다. 예를 들어 round(2.5)는 3이 아닌 2를 반환합니다. 정확한 십진법 반올림이 필요하다면 decimal 모듈 사용을 고려해 보세요.