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
128 결재 연동 서비스 업체 (아임포트) 황제낙엽 2020.06.09 273
127 2020 Software Development Trend 정리 황제낙엽 2020.05.19 100
126 Docker 황제낙엽 2020.05.04 156
125 소프트웨어 테스트 관련 황제낙엽 2020.05.04 22
124 REST, REST API, RESTful [1] 황제낙엽 2020.04.16 46
123 2019년 웹 프레임워크 인기 순위 file 황제낙엽 2020.04.06 470
122 호스팅과 클라우드 file 황제낙엽 2020.04.06 32
121 2020 클라우드 정리 - cloud, aws, azure, gcp, iaas, paas, saas 황제낙엽 2020.04.05 664
120 SAP 회계 용어 황제낙엽 2020.01.07 244
119 Using OAuth 2.0 to Access Google APIs 황제낙엽 2019.09.05 131
» 반올림하는 두 가지 방법 (Round-off(사사오입), Round-to-nearest-even(오사 오입)) file 황제낙엽 2019.08.27 1335
117 OAuth 황제낙엽 2019.08.25 61
116 [제품 검증과 성능 테스트-2] BMT / PoC / Pilot / prototyping 황제낙엽 2019.07.08 83
115 [제품 검증과 성능 테스트-1] BMT,POC,Pilot,POE 황제낙엽 2019.07.08 218
114 음성인식서비스 개발을 위한 음성 API 모음(STT API) 황제낙엽 2019.04.28 465
113 Google 의 설문지에서 응답 다운로드로 저장한 결과물(CSV)이 엑셀에서 한글깨짐 황제낙엽 2019.04.19 304
112 자연어 처리 Natural Language Processing 황제낙엽 2019.03.06 95
111 NUI(Natural User Interface) / NUX(Natural User eXperience) 황제낙엽 2019.03.03 150
110 지수(과학적 표기법, "E") 서식 지정자 (1) 황제낙엽 2018.11.03 126
109 AI의 연도별 역사 황제낙엽 2018.11.03 273