파이썬 round()
함수는 소수점 아래 자리를 반올림할 때 유용하게 사용되죠. 프로그래밍을 하다 보면 종종 실수형(float) 데이터의 소수점을 처리해야 할 상황이 생기는데, 이를 보다 깔끔하게 정리하기 위해서는 round()
함수를 알아두는 것이 좋습니다. 이번 포스팅에서는 파이썬의 round()
함수 사용법에 대해 설명하고, 주의사항과 활용 방법까지 다뤄보겠습니다.
목차
파이썬 round() 함수란?
파이썬의 round()
함수는 실수형(float) 값을 반올림하여 정수형(int) 값 또는 지정된 소수점 이하 자리수를 반환하는 함수입니다. 실수 뿐 아니라 정수도 반올림이 가능하죠. 예를 들어, 3.14159 같은 값을 2번째 소수점 자리에서 반올림하거나, 4.5를 정수 5로 변환하는 데 사용하거나, 12345를 12300으로 반올림 할 때에도 사용할 수 있습니다. 기본적인 문법은 다음과 같습니다.
round(number, ndigits)
- number: 반올림하고자 하는 실수형 값입니다.
- ndigits: 소수점 아래 몇 번째 자리에서 반올림할지를 나타냅니다. 이 값이 생략되면 기본적으로 0이 적용되어 정수로 반환됩니다.
round() 기본 사용법
round()
함수의 가장 기본적인 사용법은 단순히 소수점 이하 값을 반올림하는 것입니다. 예를 들어, 소수점 이하를 모두 제거하고 정수로 변환하려면 round()
함수를 이용하면 됩니다.
result = round(4.5)
print(result)
result = round(4.6)
print(result)
위의 코드를 실행하면 아래 그림과 같이 4.5가 반올림되어 4가 출력되고, 4.6은 반올림되어 5가 출력됩니다.
여기서 알 수 있듯이 round()
함수는 소수점 첫째 자리를 기준으로 반올림을 수행합니다. 보통 .5부터 1로 반올림된다고 알고 있는데, 4.5가 반올림되어 4가 출력되는 게 오류라고 생각되는 분 계신가요? 그건 은행가 반올림이라는 것인데 다음 섹션에서 설명해 드리겠습니다.
ndigits 사용
round()
함수에 ndigits
매개변수를 사용하면, 소수점 이하 몇 자리까지 남길지를 지정할 수 있습니다.
result = round(3.14159, 2)
print(result)
이 예에서는 3.14159라는 값이 소수점 두 번째 자리까지 반올림되어 3.14로 출력됩니다. ndigits
가 2이므로 소수점 이하 두 자리까지만 유지하는 것이죠.
round() 함수의 주의사항
은행가 반올림(Banker’s rounding)
파이썬의 round()
함수는 단순한 수학적 반올림 규칙을 따르지 않고, “은행가 반올림” 방식을 따릅니다. 이는 정확히 0.5인 값이 있을 때 가장 가까운 짝수로 반올림하는 방식입니다.
print(round(2.5))
print(round(3.5))
위 코드에서 보듯이, 2.5
는 3이 아닌 2로 반올림되고, 3.5
는 4로 반올림됩니다. 이는 금융 계산에서 소수점 자리를 보다 정확하게 처리하기 위한 방법입니다. 이 때문에 다른 언어에서의 반올림 방식과 차이가 있을 수 있으니 주의가 필요합니다.
ndigits
의 음수 값: 정수 자리에서 반올림
ndigits
에 음수를 넣으면 소수점이 아닌 정수 자리에서 반올림이 일어납니다.
print(round(123456, -1))
print(round(123456, -2))
print(round(123456, -3))
이 경우, -1은 1의 자리에서, -2는 10의 자리에서, -3은 1000의 자리에서 반올림이 이루어집니다. 이를 통해 큰 숫자를 간편하게 반올림하여 처리할 수 있습니다.
활용 방법
금액 계산에서 유용한 활용
round()
함수는 특히 금액 계산에서 소수점 이하를 정리할 때 자주 사용됩니다. 예를 들어, 결제 금액을 소수점 없이 반올림하거나, 특정 자릿수까지 남겨서 표시할 때 유용합니다.
price = 19.995
final_price = round(price, 2)
print(final_price)
다음과 같이 금액 계산 시에 round() 함수를 유용하게 사용할 수 있습니다.
그래픽 프로그램에서의 활용
게임 개발이나 그래픽 프로그래밍에서 좌표 값이 실수형인 경우, 반올림하여 좌표를 정수로 변환해 픽셀 단위로 처리할 때도 round()
함수가 사용됩니다.
x, y = 3.6, 4.2
x, y = round(x), round(y)
print(x, y)
이렇게 좌표 값을 정수로 반올림하여 처리하면, 그래픽이나 UI 요소의 배치에서 불필요한 오류도 줄어들며 처리 속도도 빨라집니다.
주의사항 요약
round()
함수는 파이썬의 기본 반올림 함수로, 소수점 이하 자리에서 값을 반올림할 수 있습니다.- 정확히 0.5인 값을 반올림할 때는 은행가 반올림을 사용하므로, 가장 가까운 짝수로 반올림된다는 점을 유념해야 합니다.
ndigits
에 음수를 넣으면 정수 자리에서 반올림이 이루어집니다.
정리
파이썬의 round()
함수는 소수점 이하 자리를 간편하게 반올림할 수 있는 유용한 도구입니다. 기본적인 사용법부터 정수 자리에서의 반올림, 그리고 은행가 반올림 방식까지 이해하면, 실수형 데이터를 더 정확하고 효율적으로 처리할 수 있습니다. 특히 금액 계산이나 그래픽 프로그램에서의 좌표 처리에 유용하게 활용할 수 있으니, 실무에서도 자주 사용하게 될 것입니다.
앞으로 파이썬을 사용하면서 더 복잡한 계산이 필요할 때, round()
함수를 적절히 활용하여 정확하고 깔끔한 결과를 얻으시기 바랍니다.