데이터: 데이터 타입 및 변환 – round()

ㅁ 데이터 타입 및 변환

1. round()

ㅇ 정의:
주어진 수치 데이터를 지정한 소수점 자리수로 반올림하는 Python 내장 함수. 두 번째 인자로 자리수를 지정하며, 생략 시 정수로 반올림.

ㅇ 특징:
– 기본적으로 “Banker’s Rounding”(짝수 쪽으로 반올림) 규칙을 사용.
– 두 번째 인자에 0 또는 음수를 넣어 10단위, 100단위 반올림 가능.
– float 연산의 이진 부동소수점 특성으로 인해 예상과 다른 결과가 나올 수 있음.

ㅇ 적합한 경우:
– 보고서 출력용 수치 데이터 처리.
– 금액, 측정값 등에서 소수점 자리수를 제한해야 할 때.
– 데이터 전처리 과정에서 일관된 반올림 규칙 적용이 필요할 때.

ㅇ 시험 함정:
– round(2.675, 2) → 2.67이 되는 이유는 부동소수점 표현 오차 때문.
– Python의 round()는 무조건 올림이 아닌 짝수 반올림 규칙 사용.
– 자리수 인자를 생략하면 float → int 변환이 아님(자료형은 float 유지 가능).

ㅇ 시험 대비 “패턴 보기” 예시:
O: round(3.14159, 2)는 3.14를 반환한다.
X: round(2.5)는 항상 3을 반환한다.
X: round() 함수는 무조건 올림 처리한다.

ㅁ 추가 학습 내용

Python 3의 round() 함수는 Banker’s Rounding 방식을 사용하며, 이는 IEEE 754 표준과 관련이 있다. Banker’s Rounding은 .5인 경우 가장 가까운 짝수로 반올림하는 방식이다.
round()와 math.floor(), math.ceil()의 차이를 구분해야 한다.
– round(): 지정한 자리에서 반올림 (Banker’s Rounding 적용)
– math.floor(): 항상 내림 (작은 쪽 정수로)
– math.ceil(): 항상 올림 (큰 쪽 정수로)

decimal 모듈을 사용하면 ROUND_HALF_UP, ROUND_HALF_DOWN 등 다양한 반올림 모드를 직접 지정할 수 있다.
pandas의 round() 메서드는 DataFrame이나 Series에 적용되며, Python 내장 round()와 동작 차이가 있을 수 있으므로 주의해야 한다.
음수 자리수 반올림 예시: round(1234, -2) → 1200 (십의 자리, 백의 자리 등 큰 자리에서 반올림 가능)

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*