파이썬 round() 함수 완전 정복: 실용 예제로 이해하기
파이썬 round() 함수 완전 정복: 실용 예제로 이해하기
round() 내장 함수는 파이썬에서 수치 작업을 위한 필수 도구입니다. 지정된 소수점 자릿수로 반올림된 값을 반환하며, 정밀도를 지정하지 않으면 가장 가까운 정수로 반올림합니다.
문법
round(number, ndigits=None)
- number – 반올림할 숫자 값.
- ndigits – 선택 사항; 유지할 소수점 자릿수. 생략 시 결과는 정수.
반환값
ndigits가 생략되면 round()는 int를 반환합니다. ndigits가 주어지면 해당 정밀도로 반올림된 float를 반환합니다.
반올림 규칙
- 대상 자릿수 다음 숫자가 5 이상이면 올림합니다.
- 5 미만이면 지정된 정밀도에서 잘라냅니다.
반올림이 중요한 이유: 실제 사례
금융 시장에서 반올림은 거래에서 수백만 달러의 차이를 만듭니다. 예를 들어, 1982년 밴쿠버 증권거래소는 거래 가격을 소수점 세 자리로 절삭하여 월간 약 25포인트의 누적 손실을 초래했습니다. 절삭 대신 반올림을 사용하면 훨씬 정확한 결과를 얻습니다.
# 예제: 절삭 vs 반올림
import random
def truncate(num):
return int(num * 1000) / 1000
arr = [random.uniform(0.01, 0.05) for _ in range(1_000_000)]
# 절삭
sum_truncate = 0
for val in arr:
sum_truncate = truncate(sum_truncate + val)
# 반올림
sum_round = 0
for val in arr:
sum_round = round(sum_round + val, 3)
print("절삭 합계:", sum_truncate)
print("반올림 합계:", sum_round)
절삭된 합계는 수백 단위까지 벗어날 수 있지만, 반올림은 편차를 1 단위 미만으로 유지합니다.
일반적인 사용 사례
부동소수점 숫자 반올림
# 기본 반올림
print(round(10.60)) # 11
print(round(10.40)) # 10
print(round(10.3456, 2)) # 10.35
print(round(10.3445, 2)) # 10.34
정수 반올림
print(round(15)) # 15
음수 반올림
print(round(-2.8)) # -3
print(round(-1.5)) # -2
NumPy 배열 반올림
import numpy as np
arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323]
print(np.round(arr, 2)) # [-0.34 1.46 4.23 -0.34 7.63 5.12]
Decimal 모듈로 정밀 제어
decimal 모듈은 반올림 모드에 대한 더 세밀한 제어를 제공합니다.
import decimal
num = decimal.Decimal('15.456')
print(num.quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP)) # 15.46
핵심 요약
- 표준 반올림에는
round(number, ndigits)를 사용하세요.
ndigits 생략 시 정수 반환, 지정 시 실수 반환.
- 중요한 금융/과학 계산에는 결정론적 반올림을 위해
decimal 모듈 고려.