반올림 - 오사오입

CaChiJ·2021년 5월 30일
0

수학

목록 보기
1/1
초보자의 관점에서 C#에서의 오사오입 원리를 설명하는 글입니다.

👀 오사오입이요?

흔히 사사오입이라는 말을 많이 들어보았을 것이다. 이름에서 4 이하는 내리고 5 이상에서 올린다는 의미를 알 수 있다. 이런 점에서 오사오입은 이름만 들었을 때는 분명 모호한 부분이 있다. 오사오입은 영어로 'round to nearest even'으로 불린다. 유효숫자 또는 오차를 줄이는 반올림 기법을 접해본 분이라면 이쯤에서 충분히 눈치챘을 것이다. 오사오입의 규칙은 다음과 같다.

반올림에서 5 미만의 숫자는 버림하며 5 초과의 숫자는 올림한다. 5의 경우에는 5의 앞자리가 홀수인 경우엔 올림을 하고 짝수인 경우엔 버림을 하여 짝수로 만들어준다. - 위키백과


🤔 알아야 하나요?

오사오입을 알아야 하는 이유는 C#에서 표준 반올림 함수가 기본적으로는 오사오입의 원리에 따라 반올림을 수행하기 때문이다. 이는 문자열 포매팅을 통한 반올림 시에도 동일하게 적용된다. 따라서 사사오입에 따라 연산을 수행하려는 경우에 아무 생각 없이 반올림 함수를 사용하게 되면 오사오입으로 처리된다.


🔎 다른 방식으로 반올림할 수 없을까?

더 정확한 값을 구해야 할 때는 오사오입이 오차를 줄이는 데 도움이 된다. 하지만 무조건 사사오입을 사용해야 할 수도 있다. 이럴 때는 어떻게 해야 할까?

이 문서를 참고하자. C#의 Math.Round 함수에 세 번째 인자로 MidpointRounding 열거형의 값을 전달하도록 오버로딩되어 있다. 세 번째 인자로
AwayFromZero를 전달하여 사사오입의 원리를 사용하도록 설정할 수 있다.

0개의 댓글