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도 무사히 올림이 되는 것을 볼 수 있다.
코드가 조금 더 복잡해지긴 하지만 알아놓고 있으면 필요할 때 유용하게 쓸 수 있을 것 같다.