일반적으로 round는 반올림을 하는 함수로 생각하고 있었다.
5미만은 버림, 5이상은 올림을 수행하는 통계적인 반올림..
그러나 파이썬에서 round는 이러한 통계적 반올림을 수행하는 것이 아니란것을 알게됨.
그렇다면? 파이썬의 round는 0 또는 짝수에 가깝게 만드는 방향으로 수행된다.
예를들어 0.5, 1.5, 2.5 의 값이 있을경우 각각의 반올림 결과는
0, 2, 2 가된다. ( 1, 2, 3 이 아니고?? )
왜냐하면 python의 수학적 반올림 기법에서는
0 < 0.5 << 1(홀수)
1(홀수) << 1.5 < 2 (짝수)
2(짝수) < 2.5 << 3 (홀수)
로 처리되어 1.5와 2.5의 round 결과가 동일하게 처리됨을 알 수 있다.
정확한 통계적 반올림 결과가 필요하다면 직접 구현이 필요할 것이고,
아니라면 round의 특성을 알고 사용해야 나중에 멘붕에 빠지지 않을수 있겠네..
'Programming > Python' 카테고리의 다른 글
string 앞에 0 또는 문자를 삽입하여 길이를 맞추자 (0) | 2021.07.02 |
---|---|
설치된 라이브러리 리스트를 requirements.txt 로 만들자. (0) | 2021.06.18 |
tqdm 과 enumerate (0) | 2021.04.01 |
Call by Value? Call by Reference?? (0) | 2021.03.10 |
python2.X 에서 opencv-python을 설치하자 (0) | 2021.01.19 |