sitelink1 https://namu.wiki/w/반올림 
sitelink2 https://blog.naver.com/noseoul1/221592047071 
sitelink3  
sitelink4  
sitelink5  
extra_vars6  

1. 근사값 처리 방법


Round-off

근사값(어림수)을 구할 때에 끝수를 처리하는 방법으로, 수학적으로 말하자면 최소 단위로 나눈 나머지가 최소 단위의 절반에 미치지 못하는 경우 버리고, 초과하는 경우는 올리는 방법이다. 사회과학에서는 주로 소수점 둘째자리를 최소 단위로 하여 반올림한다. 정확히 절반에 걸리는 경우에는 처리 방법에 따라 다르며, '절반의 걸리는 범위'에 대한 정의에 따라 그 결과가 달라지기도 한다.
  • 대표적으로는 사사오입이 있는데, 이는 정확하게 절반에 걸리는 경우를 무조건 올리는 방식이다. 다시 말해, 100 단위로 사사오입하는 경우 49는 0으로, 50은 100으로 처리하는 것이다. 최소단위 바로 밑자리가 5인지만 검사하면 되기 때문에 간편하면서도 가장 많이 사용하는 방식이다. 밑자리는 절사한다. 헌법을 개정할 때 사용한다.
  • 공학이나 자연과학에서는 오사오입을 많이 사용한다. Round-to-nearest-even이라고도 하는 이 방법은 절반에 걸리는 경우 최소 단위의 2배 단위로 맞추는 것으로, 쉽게 말해 상위 단위를 짝수로 만드는 것이다. 컴퓨터에서도 이 방식을 사용하는데, 맨 뒷자리가 필연적으로 손실되는 계산 특성상 이 방식으로 처리하는 것이 오차가 가장 적기 때문. 과학공학의 유효 숫자 개념에서 사용된다. 5를 초과할 경우 올림하고, 5 미만일 경우 버림한다. 5일 경우 앞자리 숫자가 짝수면 버리고, 홀수면 올림하여 짝수로 만들어준다. 27.65는 27.6으로, 32.35는 32.4로 만들어주면 된다. 이것은 Banker's rounding 또는 Gaussian rounding이라 하며, 다소 이상한 반올림이지만, 통계학적으로는 매우 합리적임을 알 수 있다.
  • 잘 사용되지는 않지만, 오사육입도 있다. 이는 사사오입과는 반대로 절반에 걸리는 경우를 무조건 버리는 방식이다. 회계나 정책 결정에 잘 사용되었던 방식이다. 하지만 바로 밑의 단위가 5인지를 검사했다고 끝나는 게 아닌지라 계산이 은근히 복잡한 탓에, 바로 밑의 단위는 절사하기도 한다. 100이 최소 단위며 10이 그 밑단위라면 59까지가 0으로 절사되는 식.
  • 화폐 단위를 반올림할 때 사용하는 반올림 방법인 스웨덴 반올림이 있다. 스웨덴 크로나의 보조 단위인 외레의 최소 유통 단위가 5외레로 될 때 이 반올림 방법이 시작되면서 '스웨덴 반올림'이라 불리고 있다. 이름이 조금 거창하기는 하지만, 수학적 원리는 같다. 스칸디나비아 반도 지역 및 핀란드, 캐나다 등에서 현금거래를 할 때 스웨덴 반올림이 적용된다.

100을 최소 단위, 10을 밑단위로 잡은 예시를 들면 아래와 같다.
반올림 방법
밑자리
960~1049
1050
1051~1059
1060~1149
1150
1151~1159
1160~1249
사사오입
절사
1000
1100
1200
오사오입
고려
1000
1100
1200
오사육입
고려
1000
1100
1200
오사육입
절사
1000
1100
1200

π나 √2 같은 무한소수를 반올림하거나, 1기압(=1013.25hPa)을 1013hPa로 나타내듯이 복잡한 수치를 간단화하기 위해 쓴다.

과학에선 반올림을 할때 유효숫자를 나타내기 위해 지수형태인 a×10n 꼴로 나타내는 경우가 많다. 예를 들어 3004 를 백의자리에서 반올림하면 3000 이 되고, 유효숫자는 3 하나 뿐인데 이를 표현하면 3×103 이된다. 하지만, 3004 를 십의자리에서 반올림하면 역시 3000 이 되지만, 유효숫자는 30 까지이다. 이를 지수형태로 표현하면 3.0×103 라고 표현해서 유효숫자가 2개임을 표시할 수 있다. 만약 일의자리에서 반올림 했다면 3.00×103 으로 표기한다.

Microsoft Excel에선 반올림 하는 함수로는 ROUND가 있다.[1]

Python에서는 Microsoft Excel처럼 round 함수로 반올림을 할 수 있다. 다만, Python2에서는 사사오입법을, Python3에서는 오사오입법을 쓴다는 게 특징.
 
print("round() function:")
for x in range(1, 11):
    xx = x + .5
    print("%4.1f to: %2d" % (xx, round(xx) ) )

이 코드는 아래와 같이 실행된다.
Python2
Python3
round() function:
 1.5 to:  2
 2.5 to:  3
 3.5 to:  4
 4.5 to:  5
 5.5 to:  6
 6.5 to:  7
 7.5 to:  8
 8.5 to:  9
 9.5 to: 10
10.5 to: 11
round() function:
 1.5 to:  2
 2.5 to:  2
 3.5 to:  4
 4.5 to:  4
 5.5 to:  6
 6.5 to:  6
 7.5 to:  8
 8.5 to:  8
 9.5 to: 10
10.5 to: 10

 

 

 

 

 

https://blog.naver.com/noseoul1/221592047071 블로그 참고

 

공학이나 자연과학에서는 오사 오입을 많이 사용한다.
Round-to-nearest-even이라고도 하는 이 방법은 절반에 걸리는 경우 최소 단위의 2배 단위로 맞추는 것으로, 쉽게 말해 상위 단위를 짝수로 만드는 것이다.
컴퓨터에서도 이 방식을 사용하는데, 맨 뒷자리가 필연적으로 손실되는 계산 특성상 이 방식으로 처리하는 것이 오차가 가장 작기 때문.
과학 및 공학의 유효 숫자 개념에서 사용된다.
5를 초과할 경우 올림하고, 5 미만일 경우 버림 한다.
5일 경우 앞자리 숫자가 짝수 면 버리고, 홀수 면 올림 하여 짝수로 만들어준다.
27.65는 27.6으로, 32.35는 32.4로 만들어주면 된다.
이것은 Banker's rounding 또는 Gaussian rounding이라 하며, 다소 이상한 반올림이지만, 통계학적으로는 매우 합리적임을 알 수 있다.

위의 방식 대로 하면 오차가 작고 합리적이라고 하는데 이 부분은 완전히 이해가 되지 않는다...

이해가 안되는 날을 위해 피지 파견 동료 교사가 예시를 제시해줬다. 이거 보니 신기하게 평균의 오차가 적었다....
(단 과학교사들의 대화이기 때문에 오차가 있을 수 있습니다....)

피지에 파견 온 선생님들 단톡방에서 과학선생님끼리 오사오입이 사사오입 보다 통계학적으로 정확한 이유를 토론 하고 있었다.
이를 지켜 보던 수학 선생님 한분이 수학적으로 증명을 해주었다.

 

SE-01d22254-89b0-4358-9338-7054b201d493.jpg

<피지로 같이 파견 온 수학선생님이 보내 준 증명>

 

 

SE-fe3b3041-cd3d-496b-b0ba-f03313df72c3.jpg

<피지로 같이 파견 온 수학선생님이 보낸 내용>

 

 

번호 제목 글쓴이 날짜 조회 수
공지 2023 Software Development Trend 정리 황제낙엽 2024.01.19 1
148 REST, REST API, RESTful [2] 황제낙엽 2021.01.11 91136
147 Character Entity Set(s) 황제낙엽 2013.06.24 55458
146 엑셀(excel)에서 16진수 -> 10진수 변환 file 황제낙엽 2017.08.29 4294
145 설치형 블로그, 위키, 게시판 모음 황제낙엽 2006.09.20 4131
» 반올림하는 두 가지 방법 (Round-off(사사오입), Round-to-nearest-even(오사 오입)) file 황제낙엽 2019.08.27 1340
143 notepad2 에서 문서내의 일부 문자열의 byte 크기 알아내기 file 황제낙엽 2018.03.29 1208
142 부동소수점 연산에 관한 정리 황제낙엽 2018.03.26 1051
141 컴퓨터는 음수를 2의 보수법으로 표현한다 file 황제낙엽 2016.10.24 753
140 효과적인 모바일 애니메이션 응용예 file 황제낙엽 2018.03.30 671
139 2020 클라우드 정리 - cloud, aws, azure, gcp, iaas, paas, saas 황제낙엽 2020.04.05 664
138 XQL 황제낙엽 2003.07.10 576
137 아웃룩(Outlook 2010) 메일 보관 경로(.pst) 변경과 백업/복구 file 황제낙엽 2009.12.28 504
136 2019년 웹 프레임워크 인기 순위 file 황제낙엽 2020.04.06 470
135 음성인식서비스 개발을 위한 음성 API 모음(STT API) 황제낙엽 2019.04.28 465
134 자료구조 Part1. "동적배열"의 모든 것. 황제낙엽 2007.11.24 431
133 소프트웨어 개발 환경 갖추기 황제낙엽 2006.09.21 408
132 사랑비 BGM 보안 취약점 황제낙엽 2008.08.02 405
131 Web 2.0이란 무엇인가 : 다음 세대 소프트웨어를 위한 디자인 패턴 및 비즈니스 모델(2) 황제낙엽 2007.11.20 383
130 변수를 unsigned int형 선언 0xffffffff 할당 결과가 -1이 되는 이유는? 황제낙엽 2016.10.24 376
129 EULA (End User License Agreement) ; 소프트웨어 사용자 라이선스 계약 황제낙엽 2015.06.26 368