[파이썬] 반올림 구현하기, 반올림 사사오입 구현Python2021. 12. 17. 16:00
Table of Contents
파이썬에는 round라는 반올림 함수가 있다.
>>> round(0.5)
0
>>> round(1.5)
2
>>> round(2.5)
2
>>> round(3.5)
4
>>> round(4.5)
4
>>> round(5.5)
5
다만 파이썬이나 자바스크립트 같은 개발언어에서는 위와 같이 "오사오입"이라는 방식의 반올림을 사용합니다.
오사오입(round-to-nearest-even)
반올림에서 5 미만의 숫자는 내림, 5 초과의 숫자는 올림합니다.
5의 앞자리가 홀수인 경우에는 올림을, 짝수인 경우에는 내림을 합니다.
우리가 자주 사용하는 사사오입의 반올림은
4 이하의 숫자는 내림, 5 이상의 숫자는 올림을 하는 반올림이죠!
반올림의 종류에 관해서는 이 문서를 읽어주세요.
사사오입의 반올림을 구현하는 방법은 크게 3가지가 있습니다.
1. 0.5를 더해주고 내림
저는 이방법을 사용합니다.
다만 이 방법을 사용할 때, 수가 음수일 경우에는 0.5를 더해주는게 아니라 빼줘야합니다.
>>> a = 0.5
>>> if a >= 0:
>>> print(int(sum(nums) / n + 0.5))
>>> elif a < 0:
>>> print(int(sum(nums) / n - 0.5))
1
2. 미세한 값을 더해주고 round()사용
0.0000001같이 미세한 값을 더해주고 라운드 함수를 사용하는 것입니다.
솔직히 미관에 좋지 않아서 사용하지 않습니다.
>>> a = 0.5
>>> round(a + 0.0000001)
1
3. 직접 구현
다른 블로거분들을 찾아보니 직접 구현하시는 분도 있으시더라구요.
불편하기에 추천드리지 않습니다.
'Python' 카테고리의 다른 글
[파이썬 모듈 collections] deque 큐의 이해, 사용법 (0) | 2021.12.21 |
---|---|
[백준 2108] 통계학 해설 및 풀이 (파이썬) (0) | 2021.12.20 |
[파이썬] Input, sys.studin.readline 입력 값 시간 줄이기 (0) | 2021.12.16 |
[파이썬] 0으로 이루어진 리스트 만들기 (0) | 2021.12.15 |
[파이썬 모듈] 포토샵 API 예제 (0) | 2021.12.13 |
@임채성 :: 푸르고 개발 블로그
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com