조금씩 꾸준히 완성을 향해

[Python] round 함수 주의점 round_half_even 본문

Python/문법

[Python] round 함수 주의점 round_half_even

all_sound 2022. 8. 27. 16:29

python 에서 반올림을 담당하는 round()에는 한가지 특이점이 있다. 

 

바로 round_half_even 방식을 적용하고 있다는 것이다. 

 

언뜻보면 사소한 것 같지만, 코딩테스트 등 정확한 계산이 필요한 상황에서는 모르면 큰일날 부분이다. 

 

 

▶ round_half_up   vs  round_half_even

 

우리가 흔히 아는 반올림이란 5이상은 올림을 하고, 4이하는 내림을 하는 round_half_up 방식이다. 

 

반면 round_half_even은 정확히 5 지점에 있다면 짝수쪽으로 근사값을 해주는 방식이다.

 

a = 4.5
print(round(a))  # 4

a = 7.5
print(round(a))  # 8

이렇게 4.5면 짝수쪽으로 내림을 해서 4를 만들어 주고

7.5면 짝수쪽으로 올림을 해서 8일 만들어 준다. 

 

 

python 에서 반올림을 하려면?

 

그래서 python에서 반올림을 하고 싶다면 round() 함수 말고 다른 방법을 사용해야 한다. 

 

num = 4.5
a = num + 0.5
print(int(a))  # 5

num = 7.5
a = num + 0.5
print(int(a))  # 8

이렇게 실수에 0.5를 더한 후에 정수화시키면 경계에 있는 숫자 5도 무사히 올림이 되는 것을 볼 수 있다.

 

코드가 조금 더 복잡해지긴 하지만 알아놓고 있으면 필요할 때 유용하게 쓸 수 있을 것 같다.