반올림

Rounding
결과의 그래프, y, 반올림의 x 다른 방법을 사용합니다. 명확하게 하기 위해 그래프가 정수에서 변위되어 표시됩니다. y 가치. SVG 파일에서 메서드를 마우스로 이동하여 강조 표시하고 SMIL 사용 브라우저에서 클릭하여 선택 또는 선택 취소합니다.

반올림 또는 반올림숫자를 더 짧고 단순하거나 더 명확한 표현을 가진 근사치로 대체하는 것을 의미합니다. 예를 들어, $23.4476을 $23.45로 대체하거나, 분수 312/937을 1/3으로 대체하거나, 식 √ 2를 1.414로 대체합니다.

원본보다 보고 전달하기 쉬운 값을 얻기 위해 반올림을 하는 경우가 많습니다. 반올림은 계산된 숫자, 측정 또는 추정치에 대한 오해의 소지가 있는 정확한 보고를 피하기 위해 중요할 수 있습니다. 예를 들어, 123,456으로 계산되었지만 정확하다고 알려진 수량은 보통 "약 123,500"으로 더 잘 표현됩니다.

반면에 정확한 숫자를 반올림하면 보고된 결과에 약간의 반올림 오류가 발생합니다. 반올림은 많은 계산을 보고할 때 거의 피할 수 없습니다. 특히 정수 또는 고정 소수점 산술에서 두 개의 숫자를 나눌 때, 제곱근, 로그, 사인과 같은 수학 함수를 계산할 때, 또는 고정 소수점 숫자로 부동 소수점 표현을 사용할 때. 일련의 계산 과정에서 이러한 반올림 오류는 일반적으로 누적되며, 상태가 좋지 않은 경우 결과를 무의미하게 만들 수 있습니다.

반올림할 것인지, 반올림할 것인지를 해결하기 위해 계산해야 하는 여분의 자릿수를 미리 알 수 없기 때문에 초월수학함수의 정확한 반올림은 어렵습니다. 이 문제는 "탁자의 딜레마"라고 알려져 있습니다.

반올림은 물리량을 숫자나 디지털 신호로 부호화해야 할 때 발생하는 양자화와 유사한 점이 많습니다.

9.98 ≈ 10과 같이 정확한 숫자의 반올림을 표시하기 위해 물결 모양의 등호(≈를 들어 대략 동일)가 사용되기도 합니다. 이 표지판은 1892년 알프레드 조지 그린힐에 의해 소개되었습니다.[1]

반올림 방법의 이상적인 특징은 다음과 같습니다.

  1. 반올림은 함수에 의해 이루어져야 합니다. 이렇게 하면 동일한 입력이 다른 인스턴스에서 반올림되면 출력이 변경되지 않습니다.
  2. 반올림으로 수행된 계산은 반올림 없이 수행된 계산에 가까워야 합니다.
    • (1)과 (2)의 결과로 반올림의 출력은 입력에 가까워야 하며, 종종 어떤 메트릭에 의해 가능한 한 가까워야 합니다.
  3. 반올림으로 간주하기 위해 범위도메인부분 집합(일반적으로 이산형)이 됩니다. 고전적인 범위는 정수, Z입니다.
  4. 반올림은 도메인과 범위 사이에 이미 존재하는 대칭을 보존해야 합니다. 유한한 정밀도(또는 이산 도메인)를 사용하면 편향을 제거할 수 있습니다.
  5. 반올림 방법은 유한한 정밀도를 사용하고 속도를 고려하는 컴퓨터 과학 또는 인간 산술에서 유용성을 가져야 합니다.

일반적으로 모든 이상적인 특성을 만족시키는 방법이 가능하지 않기 때문에 많은 다양한 반올림 방법이 존재합니다.

일반적으로 반올림은 멱등식(dempotent)입니다.[2] 즉, 숫자가 반올림되면 다시 반올림해도 값이 변경되지 않습니다. 반올림 함수도 단조롭습니다. 즉, 큰를 반올림하면 작은 수[clarification needed] 반올림하는 것보다 크거나 같은 결과를 얻을 수 있습니다. 이산 범위의 일반적인 경우에는 조각별 상수 함수입니다.

반올림의 종류

대표적인 반올림 문제는 다음과 같습니다.

반올림 문제 예제입력 결과 반올림기준
무리수를 분수로 근사화하는 방법 π 22 / 7 1자리 denomin기
분자와 분모가 작은 다른 분수로 유리수 근사 399 / 941 3 / 7 1자리 denomin기
분수를 소수 소수로 근사화하는 방법 5 / 3 1.6667 소수점 4자리
소수점 이하의 숫자를 사용하여 소수점 이하의 숫자로 근사화 2.1784 2.18 소수점 2자리
후행 0이 더 많은 정수로 십진 정수 근사화 23,217 23,200 3개의 유효숫자
과학적 표기법을 이용한 큰 십진 정수 근사법 300,999,999 3.01 × 108 3개의 유효숫자
지정된 양의 배수로 값 근사치 48.2 45 15의 배수
한정된 실수 집합(대부분 분수)의 각 부분을 정수(때로는 두 번째로 가까운 정수)로 근사하여 반올림한 수의 합이 숫자의 반올림한 합과 같도록 합니다(예를 들어 좌석 할당경우 [1]필요합니다. 예를 들어 가장나머지 방법으로 구현됨). 할당의 수학을 참조하십시오. 그리고 [2] 송장의 부가가치세 총액을 그 물건에 분배하기 위하여) {3/12, 4/12, 5/12} {0, 0, 1} 반올림한 원소의 합은 원소의 반올림한 합과 같습니다.

정수로 반올림

반올림의 가장 기본적인 형태는 임의의 숫자를 정수로 대체하는 것입니다. 다음 모든 반올림 모드는 추상적인 단일 인수 "round()" 절차를 구체적으로 구현한 것입니다. 이러한 함수는 (무작위성을 사용하는 함수를 제외하고) 참 함수입니다.

정수로 방향 반올림

이 네 가지 방법은 원래의 수에서 변위로 정수로의 방향 반올림이라고 합니다. x 반올림한 값으로 y 모두 동일한 제한 값(0, + ∞ 또는 - ∞)을 향하거나 멀리 떨어집니다. 방향 반올림은 구간 산술에 사용되며 재무 계산에 필요한 경우가 많습니다.

한다면 x 는 양수이고, 반올림은 0에서 0으로 반올림하는 것과 같으며, 반올림은 0에서 반올림하는 것과 같습니다. 이 경우 x 는 음수이고, 반올림은 0에서 0으로 반올림하는 것과 같으며, 반올림은 toward에서 0으로 반올림하는 것과 같습니다. 어쨌든, 만약에 x 는 정수입니다. y 그냥. x.

많은 계산이 순차적으로 이루어지는 경우 반올림 방법의 선택은 결과에 매우 중요한 영향을 미칠 수 있습니다. 유명한 예로는 1982년 밴쿠버 증권거래소가 설립한 새로운 지수가 있습니다. 처음에는 1000.000(정확도가 소수점 이하인 세 자리)으로 정했고, 22개월 후에는 약 520까지 떨어졌습니다. 반면, 이 기간 동안 주가는 일반적으로 상승했습니다. 이 문제는 지수가 매일 수천 번씩 다시 계산되고 항상 소수점 이하 3자리로 반올림되어 반올림 오류가 누적되었기 때문입니다. 더 나은 반올림으로 다시 계산하면 같은 기간 말에 1098.892의 지수 값을 얻을 수 있습니다.[3]

아래 예에서 sgn(x)는 원래 숫자인 x에 적용된 부호 함수를 나타냅니다.

반올림

아래로 반올림(또는 바닥을 차지하거나 음의 무한대를 향해 반올림)할 수 있습니다. y 를 초과하지 않는 가장 큰 정수입니다. x.

예를 들어, 23.7은 23으로 반올림되고 -23.2는 -24로 반올림됩니다.

반올림

반올림(또는 천장을 사용하거나 양의 무한대를 향해 반올림)할 수도 있습니다. y 최소 정수는 다음보다 작습니다. x.

예를 들어, 23.2는 24로 반올림되고 -23.7은 -23으로 반올림됩니다.

0을 향해 반올림

또한 0을 향해 반올림(또는 잘라내거나 무한대에서 멀어짐)할 수 있습니다. y 다음에 가장 가까운 정수입니다. x 0에서 0사이가 되도록 x (included로 쓸 때); 즉. y 의 정수 부분입니다. x, 분수 숫자 없이.

예를 들어, 23.7은 23으로 반올림되고 -23.7은 -23으로 반올림됩니다.

0에서 반올림

또한 0에서 반올림(또는 무한대를 향해 반올림)할 수 있습니다. y 0에 가장 가까운 정수입니다(또는 동등하게 다음과 같습니다). x) 그래서 x 0과 0사이입니다. y (included).

예를 들어, 23.2는 24로 반올림되고 -23.2는 -24로 반올림됩니다.

가장 가까운 정수로 반올림

이 여섯 가지 방법을 가장 가까운 정수로 반올림이라고 합니다. 숫자 반올림 x 가장 가까운 정수에 대해서는 다음과 같은 경우에 어떤 동점 규칙이 필요합니다. x 정확히 두 정수 사이의 절반입니다. 즉, 의 분수 부분이 x 정확히 0.5입니다.

0.5개의 분수가 아니면 반올림에서 가장 가까운 반올림 방법으로 발생하는 반올림 오차는 대칭입니다. 반올림되는 모든 분수(예: 0.268)에 대해 같은 양만큼 반올림되는 보완 분수(즉, 0.732)가 있습니다.

분수 부분이 균일하게 분포된 큰 고정 소수점 숫자 집합을 반올림할 때, 0.5개의 분수 부분을 갖는 숫자를 제외한 모든 값에 의한 반올림 오차는 서로 통계적으로 보상합니다. 이는 집합에서 분수 부분이 0.5인 숫자를 제거할 때 반올림된 숫자의 기대(평균) 값이 원래 숫자의 기대 값과 같다는 것을 의미합니다.

실제로 부동 소수점 숫자는 일반적으로 사용되며, 이는 동일한 간격이 아니기 때문에 계산 뉘앙스가 훨씬 더 큽니다.

반올림

사람은 많은 학문 분야에서 널리 사용되는 동점 규칙인 반올림(또는 양의 무한대를 향해 반올림)할 수 있습니다.[citation needed] 즉, 절반 값의 x 항상 반올림되어 있습니다.

  • 의 분수 부분인 경우 x 정확히 0.5입니다. y = x + 0.5

예를 들어, 23.5는 24로 반올림되고 -23.5는 -23으로 반올림됩니다.

그러나 일부 프로그래밍 언어(자바, 파이썬 등)는 여기서 절반0에서 반쯤 떨어진 것으로 정의합니다.[4][5]

방법은 두 개의 보어 및 유사한 표현에서 반올림 방향을 결정하기 위해 한 자리의 숫자만 확인하면 됩니다.

반올림 반올림

일반적인 반올림과는 반대로 반올림(또는 음의 무한대를 향해 반올림)할 수도 있습니다.

  • 의 분수 부분인 경우 x 정확히 0.5입니다. y = x − 0.5

예를 들어, 23.5는 23으로 반올림되고 -23.5는 -24로 반올림됩니다.

그러나 일부 프로그래밍 언어(자바, 파이썬 등)는 여기서 절반0향한 반올림으로 정의합니다.[4][5]

반올림은 0을 향해 반올림합니다.

또한 0에서 반쯤 떨어진 기존의 반올림과는 반대로 0을 향해 반올림(또는 무한대에서 반올림)할 수도 있습니다.

  • 의 분수 부분인 경우 x 정확히 0.5입니다. y = x − 0.5의 경우 x 긍정적이고, y = x + 0.5의 경우 x 부정적입니다.

예를 들어, 23.5는 23으로 반올림되고 -23.5는 -23으로 반올림됩니다.

이 방법은 양수와 음수 값을 대칭적으로 취급하므로 원래 숫자가 양수 또는 음수일 경우 전체적인 양수/음성 편향이 없습니다. 그러나 여전히 0에 대한 편견이 있습니다.

0에서 반올림

일반적으로 가르치고 사용하는 타이브레이크 규칙인 0에서 반무한대를 향해 반은 돌릴 수도 있습니다.

  • 의 분수 부분인 경우 x 정확히 0.5입니다. y = x + 0.5의 경우 x 긍정적이고, y = x − 0.5의 경우 x 부정적입니다.

예를 들어, 23.5는 24로 반올림되고 -23.5는 -24로 반올림됩니다.

이것은 이진 컴퓨터에서 더 효율적일 수 있습니다. 첫 번째 생략된 비트만 고려하여 반올림(1의 경우) 또는 축소(0의 경우) 여부를 결정해야 하기 때문입니다. 이것은 단순하기 때문에 유의한 수치로 반올림할 때 사용되는 한 가지 방법입니다.

상용 반올림이라고도 하는 이 방법은 [citation needed]양수와 음수 값을 대칭적으로 취급하므로 원래 숫자가 양수 또는 음수일 경우 전체적인 양수/음성 편향이 없습니다. 그러나 여전히 0에서 치우침이 있습니다.

첫 번째 분수 숫자를 고려하는 것만으로도 설명하기 쉽기 때문에 종종 통화 전환 및 가격 반올림(유로화 1센트와 같이 통화의 가장 작은 중요한 부분으로 처음 변환되는 경우)에 사용됩니다. 금액의 부가적인 정밀도 숫자 또는 부호와는 독립적으로(금액의 지불자와 수령자 사이의 엄격한 동등성을 위해).

반올림 반올림

또한 절반에서 짝수로 반올림할 수도 있는데, 이는 양/음의 편향이 없고 0을 향한 편향이 없거나 0에서 멀어지는 동점 규칙입니다. 이 규칙에 의해, 만약의 분수 부분이 x 0.5입니다. y 에 가장 가까운 짝수 정수입니다. x. 따라서 예를 들어 23.5는 24.5와 마찬가지로 24가 되지만 -23.5는 -24.5와 마찬가지로 -24가 됩니다. 이 함수는 입력이 대부분 양수이거나 대부분 음수인 경우에도 대부분 짝수이거나 대부분 홀수가 아닌 경우 반올림된 수치를 합산할 때 예상되는 오차를 최소화합니다.

이러한 라운드 투 최근 방법의 변형은 수렴 반올림, 통계학자 반올림, 더치 반올림, 가우스 반올림, 홀수-짝수 반올림 [6]또는 은행원 반올림이라고도 합니다.[7]

이것은 IEEE 754 연산에서 이진 부동 소수점 형식의 결과에 사용되는 기본 반올림 모드입니다.

편향을 제거함으로써 1차원 랜덤 워크와 같이 독립적인 숫자의 덧셈 또는 뺄셈을 반복하면 선형이 아닌 연산 수의 제곱근에 비례하여 증가하는 경향이 있는 오차가 있는 둥근 결과를 얻을 수 있습니다.

그러나 이 규칙은 확률에 비해 짝수의 확률을 높여 분포를 왜곡합니다. 일반적으로 이것은 이 방법으로 제거되는 편향보다 덜 중요합니다[citation needed].

반올림에서 홀수로 반올림

반에서 홀수로 반올림할 수도 있고 반에서 짝수로 반올림하는 것과 비슷한 동점 규칙입니다. 이 접근법에서 분수 부분이 x 0.5입니다. y 다음에 가장 가까운 홀수 정수입니다. x. 따라서 예를 들어 23.5는 22.5와 마찬가지로 23이 되고, -23.5는 -22.5와 마찬가지로 -23이 됩니다.

또한 반올림할 숫자가 대부분 짝수이거나 대부분 홀수가 아닌 경우 이 방법은 양/음의 치우침과 0을 향한 치우침이 없습니다. 또한 짝수에 비해 확률이 증가하기 때문에 원래 분포를 왜곡하는 반올림에서 짝수 속성을 공유합니다. 그것은 영국이 통화를[8][clarification needed] 소수화할 때 은행 잔고에 사용되는 방법이었습니다.

이 변형은 지수 범위가 제한된 부동 소수점 숫자의 스케일을 증가시키는 것을 피하고 싶은 상황을 제외하고는 계산에 거의 사용되지 않습니다. 반올림이 짝수인 경우 무한대로 반올림하고, 작은 비정규값은 0이 아닌 정상값으로 반올림합니다. 효과적으로, 이 모드는 짝수 기수의 시스템(이진 및 십진 등)에 대해 가능한 한 범위 밖의 결과를 피하도록 기존의 타이 수 척도를 유지하는 것을 선호합니다.[clarification needed (see talk)]

더 짧은 정밀도에 대비하기 위한 라운딩

이 반올림 모드는 여러 반올림 후에 잠재적으로 잘못된 결과를 얻는 것을 방지하기 위해 사용됩니다. 이는 최종 라운드를 제외한 모든 라운드를 RPSP를 사용하여 수행하고 최종 라운드만 외부에서 요청한 모드를 사용하는 경우에 달성할 수 있습니다.

10진법을 사용하면 0과 5의 끝자리를 피할 수 있습니다. 0 또는 1, 4 또는 5, 5 또는 6, 9 또는 0 중에서 가장 작은 자리를 선택하는 경우 0 또는 5와 다른 자리를 선택해야 합니다. 그렇지 않으면 선택이 임의적입니다. IBM은 후자의 경우 크기가 더 작은 숫자를 선택해야 한다고 정의합니다.[9] RPSP는 한 자릿수만큼 작은 두 번의 결과 반올림 사이의 단계로 적용할 수 있습니다(예: 1/100으로 반올림한 후 1/10으로 반올림 적용 가능). 예를 들어, 정수로 반올림할 때,

  • 20.0은 20으로 반올림됩니다.
  • 20.01, 20.1, 20.9, 20.99, 21, 21.01, 21.9, 21.99는 21로 반올림됩니다.
  • 22.0, 22.1, 22.9, 22.99는 22로 반올림;
  • 24.0, 24.1, 24.9, 24.99는 24로 반올림됩니다.
  • 25.0은 25로 반올림;
  • 25.01, 25.1은 26으로 반올림됩니다.

"이중 반올림" 섹션의 예에서 소수점 1에 9.46을 반올림하면 9.4가 되고 정수에 반올림하면 9가 됩니다.

이진 산술의 경우 이 반올림을 "반올림에서 홀수로"("반올림에서 홀수로"와 혼동하지 않음)라고도 합니다. 예를 들어, 1/4(이진법으로 0.01)로 반올림할 때

  • x = 2.0 ⇒ 결과는 2(이진법으로 10.00)입니다.
  • 2.0 < x < 2.5 ⇒ 결과는 2.25(이진법으로 10.01)입니다.
  • x = 2.5 ⇒ 결과는 2.5(이진법으로 10.10)입니다.
  • 2.5 < x < 3.0 ⇒ 결과는 2.75(이진법으로 10.11)입니다.
  • x = 3.0 ⇒ 결과는 3(이진법으로 11.00)입니다.

정확한 결과를 얻으려면 각 반올림 단계에서 최소 2개의 이진 숫자를 제거해야 합니다. 그렇지 않으면 잘못된 결과가 나타날 수 있습니다. 예를들면,

  • 3.125 RPSP ~ 1/4 ⇒ 결과는 3.25입니다.
  • 3.25 RPSP to 1/2 ⇒ result is 3.5
  • 3.5라운드 반대반 1 ⇒ 결과는 4입니다(wrong).

잘못된 중간 단계를 제거하면 최종 반올림은 정수로 3.25를 올바른 값인 3으로 반올림합니다.

RPSP는 IBM zSeriespSeries의 하드웨어로 구현됩니다.

정수로 무작위 반올림

교대 타이브레이킹

대부분의 방법보다 더 모호한 한 가지 방법은 분수가 0.5인 숫자를 반올림할 때 방향을 바꾸는 것입니다. 다른 모든 것은 가장 가까운 정수로 반올림됩니다.

  • 분수 부분이 0.5일 때마다 반올림 또는 반올림: 0.5 분수 부분의 첫 번째 발생 시 반올림, 두 번째 발생 시 반올림, 반올림 등을 번갈아 수행합니다. 또는 첫 번째 0.5 부분 반올림은 랜덤 시드로 결정할 수 있습니다. "위"와 "아래"는 서로 반대되는 임의의 두 반올림 방법이 될 수 있습니다 - 양의 무한대를 향하거나 멀어지거나 0을 향하거나 멀어질 수 있습니다.

0.5개의 분수 부품이 발생한 경우 발생 "계산"을 다시 시작하는 것보다 훨씬 더 많이 발생하면 사실상 바이어스가 없습니다. 제로 바이어스가 보장되면 숫자를 합산하거나 평균화할 경우 유용합니다.

랜덤 타이브레이킹

  • 의 분수 부분인 경우 x 0.5 입니다. y 확률이 동일한 + 0.5 - 0.5 사이에서 임의로 선택됩니다. 다른 모든 것은 가장 가까운 정수로 반올림됩니다.

반 대 반, 반 대 홀수처럼 이 규칙은 본질적으로 전체적인 편향이 없지만 짝수와 홀수 사이에서도 공정합니다. y 가치. 대체 타이브레이크에 비해 장점은 0.5 분수 부분의 마지막 반올림 방향을 "기억"할 필요가 없다는 것입니다.

확률적 반올림

다음과 같이 음의 무한대를 향해 가장 가까운 정수와 양의 무한대를 향해 가장 가까운 정수 중 하나로 반올림하는 것을 확률적 반올림이라고 하며, 근접성에 따라 확률이 달라지는 것을 확률적 반올림이라고 하며, 평균적으로 편향되지 않은 결과를 제공합니다.[10]

예를 들어, 1.6은 확률 0.4에서 1로 반올림되고 확률 0.6에서 2로 반올림됩니다.

확률적 반올림은 반올림 함수가 결코 정확할 수 없는 방식으로 정확할 수 있습니다. 예를 들어, 모든 덧셈 사이의 실행 합계를 반올림하면서 0으로 시작하여 0.3을 더했다고 가정해 보겠습니다. 정규 반올림의 경우 결과는 0이지만 확률적 반올림의 경우 예상 결과는 30으로 반올림을 하지 않고 얻은 값과 같습니다. 이는 훈련이 낮은 정밀도의 산술을 반복적으로 사용할 수 있는 기계 학습에서 유용할 수 있습니다.[10] 확률적 반올림은 1차원 디더링을 달성하는 방법이기도 합니다.

정수 반올림 접근법 비교

가치 기능적 방법 임의화 방법
유향라운딩 가장 가까운 곳으로 반올림 더 짧은 정밀도에 대비하기 위한 라운드 교대 타이브레이크 랜덤 타이브레이크 스토캐스틱
밑.
(toward - ∞)
업.
(toward + ∞)
0을 향하여 어웨이 프롬 0 하프 다운
(toward - ∞)
하프 업
(toward + ∞)
0을 향해 반 0에서 절반 떨어져 있음 하프 투 이븐 홀수에게 반 평균 SD 평균 SD 평균 SD
+1.8 +1 +2 +1 +2 +2 +2 +2 +2 +2 +2 +1 +2 0 +2 0 +1.8 0.04
+1.5 +1 +1 +1 +1.505 0 +1.5 0.05 +1.5 0.05
+1.2 +1 +1 +1 +1 0 +1 0 +1.2 0.04
+0.8 0 +1 0 +1 +0.8 0.04
+0.5 0 0 0 +0.505 0 +0.5 0.05 +0.5 0.05
+0.2 0 0 0 0 0 0 0 +0.2 0.04
−0.2 −1 0 −1 −1 −0.2 0.04
−0.5 −1 −1 −1 −0.495 0 −0.5 0.05 −0.5 0.05
−0.8 −1 −1 −1 −1 0 −1 0 −0.8 0.04
−1.2 −2 −1 −1 −2 −1.2 0.04
−1.5 −2 −2 −2 −1.495 0 −1.5 0.05 −1.5 0.05
−1.8 −2 −2 −2 −2 0 −2 0 −1.8 0.04

다른 값으로 반올림

지정된 배수로 반올림

반올림의 가장 일반적인 유형은 정수로 반올림하는 것입니다. 또는 더 일반적으로 10분의 1초, 1달러의 100분의 1, 1/2인치 또는 1/8인치의 전체 배수로 반올림하는 것과 같은 일부 증분의 정수 배로 반올림하는 것입니다.

일반적으로 숫자 반올림 x 어떤 특정한 양의 값의 배수로. m 다음 단계를 수행합니다.

예를 들어 반올림 x = 2.1784 달러에서 전체 센트(즉, 0.01의 배수)까지는 2.1784 / 0.01 = 217.84를 계산한 다음 218로 반올림하고 마지막으로 218 × 0.01 = 2.18을 계산합니다.

미리 지정된 유효숫자로 반올림할 때 증분 m 반올림할 수(또는 반올림한 결과)의 크기에 따라 달라집니다.

증가분 m 는 일반적으로 숫자를 나타내기 위해 사용되는 모든 숫자 체계에서 유한 분수입니다. 인간에게 보여주기 위해, 그것은 보통 십진법을 의미합니다 (즉, m 1/1000 또는 25/100)처럼 10의 정수 배입니다. 디지털 컴퓨터에 저장된 중간값의 경우 종종 이진수 시스템을 의미합니다.m 2)의 정수배입니다.

임의의 실수 값에서 정수를 반환하는 추상적인 단일 인수 "round()" 함수에는 반올림 섹션에 제시된 12개 이상의 구별된 구체적인 정의가 있습니다. 추상적인 두 인수 "roundToMultiple()" 함수는 여기서 공식적으로 정의되지만 많은 경우 암묵적인 값과 함께 사용됩니다. m = 증분에 대해 1을 사용한 다음 동일한 12개의 다른 구체적인 정의와 함께 동등한 추상 단일 argument 함수로 축소합니다.

로그 반올림

지정된 거듭제곱으로 반올림

지정된 거듭제곱으로 반올림하는 것은 지정된 배수로 반올림하는 것과 매우 다릅니다. 예를 들어, 하나의 숫자를 2의 전체 거듭제곱으로 반올림해야 하는 것이 컴퓨팅에서 일반적입니다. 일반적으로 양수를 반올림하는 단계는 x 어느 정도 양의 거듭제곱으로 b 1 이외는 다음과 같습니다.

배수 반올림에 적용할 수 있는 많은 주의 사항은 거듭제곱 반올림에 적용할 수 있습니다.

눈금반올림

로그 척도로 반올림이라고도 하는 이러한 유형의 반올림은 지정된 거듭제곱으로 반올림하는 변형입니다. 로그 스케일의 반올림은 금액의 로그를 취한 후 로그 스케일에서 가장 가까운 값으로 일반 반올림을 수행하여 수행됩니다.

예를 들어, 저항기는 로그 스케일에서 선호하는 숫자로 제공됩니다. 특히 정확도가 10%인 저항기의 경우 공칭값 100, 120, 150, 180, 220 등을 10의 배수로 반올림하여 공급합니다(E12 시리즈). 계산 결과 165옴의 저항이 필요한 경우 log(150) = 2.176, log(165) = 2.217 및 log(180) = 2.255입니다. 로그 165는 로그 180에 더 가깝기 때문에 다른 고려 사항이 없는 경우 180옴 저항이 첫 번째 선택이 됩니다.

x ∈ (a, b)가 반올림하는지 여부 a 또는 b 제곱 값 x2 제품 ab보다 큰지 작은지에 따라 달라집니다. 저항기 예제에서 165 = 27225150 × 180 = 27000보다 크기 때문에 값은 180으로 반올림됩니다.

부동소수점 반올림

부동 소수점 산술에서 반올림은 주어진 값을 돌리는 것을 목표로 합니다. x 값어치가 있는 y 지정된 숫자의 유효숫자를 사용합니다. 다시 말해서. y 숫자의 배수여야 합니다. m 그것은 의 크기에 따라 다릅니다. x.갯수 m 부동 소수점 표현의 밑부분(일반적으로 2 또는 10)의 거듭제곱입니다.

이 세부 사항 외에도 위에서 설명한 모든 반올림 변형은 부동 소수점 숫자 반올림에도 적용됩니다. 이러한 반올림에 대한 알고리즘은 위의 스케일링된 반올림 섹션에 제시되어 있지만, 일정한 스케일링 팩터를 가지고 있습니다. s = 1, 정수의 밑 b > 1.

반올림한 결과가 "0에서 반올림"할 때 적절한 부호가 붙은 무한대 또는 가장 높은 대표 가능한 양의 유한수(또는 다음의 경우 가장 낮은 대표 가능한 음의 유한수)를 초과합니다. x 음수), "0을 향한 rounding"일 때. 라운드에서 가장 가까운 라운드의 일반적인 경우에 대한 오버플로우의 결과는 항상 적절한 무한대입니다.

단순 분수로 반올림

어떤 상황에서는 주어진 숫자를 반올림하는 것이 바람직합니다. x "neat" 분수로 - 즉, 가장 가까운 분수로 y = m/n 누구의 분자. m 그리고 분모 n 주어진 최대치를 초과할 수 없습니다. 이 문제는 값을 고정된 소수나 이진수로 반올림하거나 주어진 단위의 배수로 반올림하는 것과는 상당히 다릅니다. m. 이 문제는 Farey 수열, Stern-Brocot 트리연속 분수와 관련이 있습니다.

사용 가능한 값으로 반올림

완성된 목재, 필기 용지, 콘덴서 및 기타 많은 제품은 일반적으로 몇 가지 표준 크기로만 판매됩니다.

많은 설계 절차에서는 근사치를 계산한 다음 "가장 가까운 표준 값으로 반올림", "가장 가까운 표준 값으로 반올림" 또는 "가장 가까운 표준 값으로 반올림"과 같은 문구를 사용하여 일부 표준 크기로 "반올림"하는 방법을 설명합니다.[11][12]

일련의 선호 값들이 로그 스케일에서 동일한 간격을 가질 때, 임의의 주어진 값에 가장 가까운 선호 값을 선택하는 것은 스케일된 반올림의 형태로 볼 수 있습니다. 이렇게 반올림된 값을 직접 계산할 수 있습니다.[13]

다른 상황에서의 반올림

디더링 및 오류 확산

음파와 같은 연속적인 신호를 디지털화할 때는 각 개별 측정값의 정확도보다 여러 측정값의 전체적인 효과가 더 중요합니다. 이러한 상황에서는 일반적으로 디더링(dithering)과 관련 기술인 오류 확산(error diffusion)이 사용됩니다. 펄스-폭 변조라는 관련 기술은 가변 듀티 사이클로 전력을 빠르게 펄스하여 관성 장치에서 아날로그 형태의 출력을 달성하는 데 사용됩니다.

오차 확산은 평균적으로 오차를 최소화하려고 합니다. 1에서 0까지의 완만한 기울기를 다룰 때, 오차와 전류 값의 합이 0.5보다 커질 때까지 처음 몇 항 동안 출력은 0이 됩니다. 이 경우 a는 출력이고 지금까지의 오차에서 차이를 뺀 것입니다. Floyd–Steinberg 디더링은 영상을 디지털화할 때 널리 사용되는 오류 확산 절차입니다.

1차원 예를 들어, 0.9677, 0.9204, 0.7451, 0.3091이라는 숫자가 순서대로 발생하고 각각 0.01의 배수로 반올림된다고 가정합니다. In this case the cumulative sums, 0.9677, 1.8881 = 0.9677 + 0.9204, 2.6332 = 0.9677 + 0.9204 + 0.7451, and 2.9423 = 0.9677 + 0.9204 + 0.7451 + 0.3091, are each rounded to a multiple of 0.01: 0.97, 1.89, 2.63, and 2.94. 이들 중 첫 번째 값과 인접한 값의 차이는 0.97, 0.92 = 1.89 - 0.97, 0.74 = 2.63 - 1.890.31 = 2.94 - 2.63과 같은 원하는 반올림 값을 제공합니다.

몬테카를로 산술

몬테카를로 산술은 몬테카를로 방법에서 반올림이 무작위로 위 또는 아래로 올라가는 기법입니다. 확률적 반올림은 몬테카를로 산술에 사용될 수 있지만, 일반적으로 확률이 동일한 반올림 또는 반올림만 사용되는 경우가 더 많습니다. 반복 실행은 계산의 안정성을 나타낼 수 있는 결과의 무작위 분포를 제공합니다.[14]

반올림 연산으로 정확한 연산

반올림 연산을 사용하여 정수 영역과 범위를 갖는 함수의 정확한 값을 평가할 수 있습니다. 예를 들어, 정수인 경우 n 완벽한 제곱근으로 알려져 있으며, 그 제곱근은 변환을 통해 계산할 수 있습니다. n 부동 소수점 이하로 z, 근사 제곱근 계산 xz 부동 소수점을 사용한 다음 반올림 x 가장 가까운 정수로 y.한다면 n 너무 크지 않습니다. 부동 소수점 반올림 오류입니다. x 0.5보다 작으므로 반올림된 값 y 의 정확한 제곱근이 될 것입니다. n. 그렇기 때문에 슬라이드 규칙을 정확한 산술에 사용할 수 있습니다.

더블 라운딩

숫자를 여러 수준의 정밀도로 연속적으로 두 번 반올림하는 것은, 후자의 정밀도가 더 조대한 것을 제외하고 최종 정밀도에 한 번 반올림하는 것과 동일한 결과를 제공한다는 보장은 없습니다.[nb 1] 예를 들어 반올림 9.46에서 소수 하나로 반올림하면 9.5가 되고 반올림에서 짝수로 반올림하면 10이 되지만 직접 정수로 반올림하면 9가 됩니다. Borman과 Chatfield는[15] 소수점 한 자리로 반올림한 데이터를 정수를 사용하여 표현된 규격 한계와 비교할 때 이중 반올림의 의미에 대해 논의합니다.

1995년에서 1997년 사이에 소송을 제기한 Martinez v. AllstateSendejov v. Farmers에서 보험 회사는 이중 반올림 보험료가 허용되며 실제로 필요하다고 주장했습니다. 미국 법원은 보험 회사에 불리한 판결을 내리고 단일 반올림을 보장하는 규칙을 채택하도록 명령했습니다.[16]

일부 컴퓨터 언어와 IEEE 754-2008 표준은 간단한 계산에서 결과를 두 번 반올림해서는 안 된다고 지시합니다. 이것은 자바가 서로 다른 기계에서 동일하게 실행되도록 설계되었기 때문에 특히 문제가 되었습니다. x87 부동 소수점을 사용하여 이를 달성하려면 특수 프로그래밍 트릭을 사용해야 했습니다.[17][18] 자바 언어는 차이가 중요하지 않고 결과가 정확하게 일치해야 할 때 엄격한 fp 한정자를 사용해야 하는 다른 결과를 허용하도록 변경되었습니다. 자바 17에서 엄격한 부동 소수점이 복원되었습니다.[19]

일부 알고리즘에서는 중간 결과를 더 큰 정밀도로 계산한 다음 최종 정밀도로 반올림해야 합니다. 중간 계산을 위해 적절한 반올림을 선택하면 이중 반올림을 피할 수 있습니다. 이것은 최종 반올림을 위해 중간 지점으로 반올림하는 것을 피하는 것으로 구성됩니다(중간 지점이 정확한 경우는 제외). 이진 산술에서 아이디어는 결과를 0으로 반올림하고 반올림한 결과가 부정확할 경우 최소 비트를 1로 설정하는 것입니다. 이 반올림을 스티키 반올림이라고 합니다.[20] 마찬가지로, 이것은 정확히 표현할 수 있을 때 중간 결과를 반환하고, 홀수의 부호가 있는 가장 가까운 부동 소수점 숫자를 반환하는 것으로 구성되며, 이것이 바로 홀수로의 반올림이라고도 합니다.[21][22] 이 접근법의 구체적인 구현은 이진법과 십진법의 경우 더 짧은 정밀도에 대비하기 위해 반올림(Rounding)으로 구현됩니다.

테이블 메이커의 딜레마

윌리엄 M. 카한(William M. Kahan)은 초월 함수를 반올림하는 데 드는 알려지지 않은 비용을 "테이블 메이커의 딜레마(The Table-Maker's Dilemma)"라는 용어를 만들었습니다.

계산하는 데 드는 비용은 아무도 모릅니다. yw 오버플로우/언더플로우되지 않는 부동 소수점 인수를 두 번 모두 올바르게 반올림합니다. 대신에, 평판이 좋은 수학 도서관들은 기본적인 초월 함수들을 대부분 반 이상의 ulp 내에서 계산하고 거의 항상 하나의 ulp 내에서 계산합니다. 왜 안되나요? yw SQRT처럼 반 척 이내로 둥글게? 계산 비용이 얼마나 들지 아무도 모르기 때문에... 초월적 표현을 계산하고 그것을 미리 할당된 숫자로 정확하게 반올림하기 위해 몇 개의 추가 숫자를 운반해야 할지 예측하는 일반적인 방법은 없습니다. 심지어 (만약 참이라면) 궁극적으로 유한한 숫자의 여분의 숫자로 충분할 것이라는 사실도 깊은 정리일 수 있습니다.[23]

IEEE 754 부동 소수점 표준은 덧셈, 뺄셈, 곱셈, 나눗셈, 융합 곱셈, 제곱근 및 부동 소수점 나머지가 무한 정밀도 연산의 정확한 반올림 결과를 제공한다는 것을 보장합니다. 더 복잡한 함수에 대해서는 1985년 표준에서 이러한 보장이 제공되지 않았으며 일반적으로 마지막 비트 내에서만 정확합니다. 그러나 2008년 표준은 적합한 구현이 활성 반올림 모드와 관련하여 올바르게 반올림된 결과를 제공한다는 것을 보장하지만 기능 구현은 선택 사항입니다.

겔폰드-슈나이더 정리 린데만-을 이용하여Weierstrass 정리, 일부 잘 알려진 주장을 제외하고 많은 표준 기본 함수는 초월적 결과를 반환하는 것으로 증명될 수 있습니다. 따라서 이론적 관점에서 볼 때 이러한 함수를 올바르게 반올림하는 것은 항상 가능합니다. 그러나 이러한 기능을 구현하려면 정확한 반올림 결과를 보장하기 전에 얼마나 정확한 결과를 계산해야 하는지에 대한 주어진 정밀도에 대한 한계를 결정하는 것은 많은 계산 시간을 요구하거나 도달할 수 없는 경우가 있습니다.[24] 실제로 이 한계를 알 수 없는 경우(또는 매우 큰 한계만 알 수 있는 경우), 구현에서 어떤 결정을 내려야 합니다(아래 참조). 그러나 확률 모델에 따르면, 정확한 반올림은 대상 형식의 자릿수의 최대 두 배에 약간의 작은 상수를 더한 중간 정확도를 사용할 때 매우 높은 확률로 만족할 수 있습니다(특수한 경우를 고려한 후).

일부 프로그래밍 패키지는 올바른 반올림을 제공합니다. GNU MPFR 패키지는 정확하게 반올림된 임의의 정밀도 결과를 제공합니다. 일부 다른 라이브러리는 IEEE 754 이중 정밀도(바이너리 64)에서 정확한 반올림으로 기본 기능을 구현합니다.

  • 1999년 Abraham Ziv와 Moshe Olshansky가 쓴 Java용 Mathemical Library의 약자인 IBMml4j는 정확히 가장 가까운 것으로만 반올림되었습니다.[25][26] 이 라이브러리는 휴대가 가능하다고 주장했지만 PowerPC/AIX, SPARC/Solarisx86/Windows NT용 바이너리만 제공되었습니다. 그 문서에 따르면, 이 라이브러리는 두 배의 정밀도보다 약간 더 큰 정확도를 갖는 첫 번째 단계, 두 배의 산술을 기반으로 하는 두 번째 단계, 그리고 IEEE 754 배의 정밀도를 기반으로 하는 768 비트의 정밀도를 갖는 세 번째 단계를 사용합니다.
  • IBM의 정확한 휴대용 수학 라이브러리(약칭: APMathLib 또는 just MathLib)[27][28]는 libultim이라고도 하며,[29] 가장 가까운 곳으로만 반올림합니다. 이 라이브러리는 최대 768비트의 작업 정밀도를 사용합니다. 2001년 GNU C 라이브러리[30]포함되었으나 2018년부터 2021년까지 "느린 경로"(올바른 반올림 제공)가 삭제되었습니다.
  • 2003년에 처음 배포된 구 아레네어 팀(LIP, ENS Lyon)[31]에서 작성된 CRlibm. 4개의 반올림 모드를 지원하며, 반올림이 가장 어려운 경우에 대한 지식을 사용하여 증명되었습니다.[32][33]
  • 썬 마이크로시스템즈의 libmcr, 4라운드 모드입니다.[34][35] 어려운 경우, 이 라이브러리는 또한 다중 정밀도를 사용하며 테이블 메이커 딜레마가 발생할 때마다 단어 수가 2개씩 증가합니다(기계의 일부 한계에 도달할 가능성이 매우 낮은 경우 정의되지 않은 동작).
  • CORE-MATH 프로젝트는 x86-64 프로세서를 위한 4개의 반올림 모드에서 정확하게 반올림된 일부 기능을 제공하며, 반올림이 가장 어려운 경우에 대한 지식을 사용합니다.[36][37]

몇 자리의 숫자를 계산해도 반올림한 값을 결정할 수 없는 계산 가능한 숫자가 존재합니다. 구체적인 사례는 제공할 수 없지만 이는 중단 문제의 결정 불가능성에서 비롯됩니다. 예를 들어, 골드바흐의 추측이 참이지만 증명할 수 없다면, 다음 값을 반올림한 결과, n, 다음 정수까지 확인할 수 없음: 둘 중 하나 n=1+10 여기서 k 첫번째 짝수는 두 소수의 합이 아닌 4보다 크거나, n=1 그런 숫자가 없는 경우. 반올림한 결과는 만약 그런 숫자라면 2입니다. k 존재하고 그렇지 않으면 1. 그러나 반올림 전 값은 추측을 증명할 수 없더라도 주어진 정밀도에 근사할 수 있습니다.

문자열 검색과의 상호 작용

반올림은 숫자에 대한 문자열 검색에 악영향을 줄 수 있습니다. 예를 들어, 4자리로 반올림한 π는 "3.1416"이지만, 이 문자열을 간단히 검색해도 "3.14159" 또는 4자리 이상으로 반올림한 π의 다른 값을 찾을 수 없습니다. 이와 대조적으로 잘림은 이 문제를 겪지 않습니다. 예를 들어, 4자리로 잘린 π "3.1415"에 대한 간단한 문자열 검색은 4자리 이상으로 잘린 π 을 발견합니다.

역사

반올림이라는 개념은 아주 오래된 것이고 아마도 나눗셈이라는 개념 자체보다 더 오래된 것 같습니다. 메소포타미아에서 발견된 일부 고대 점토판에는 60 밑면에 둥근 역근과 정사각형 뿌리의 값이 있는 테이블이 포함되어 있습니다.[38] π, 한 해의 길이, 그리고 한 달의 길이에 대한 둥근 근사치도 고대의 것입니다. 기본 60개의 예를 참조하십시오.

라운드 하프 투 이븐 방식은 1940년부터 미국 표준 Z25.1과 ASTM 표준 E-29로 사용되었습니다.[39] 편향되지 않은 반올림통계학자의 반올림이라는 용어의 기원은 상당히 자명합니다. 로버트 심슨 우드워드(Robert Simpson Woodward)는 1906년 제4판에서 이것을 "컴퓨터의 규칙"이라고 불렀고,[40] 이것이 수학적 표를 계산하는 인간 컴퓨터에 의해 일반적으로 사용되었음을 나타냅니다. 예를 들어, 사이먼 뉴컴의 c. 1882년 책 로그기타 수학 표에서 권장되었습니다.[41] 루시우스 터틀(Lucius Tuttle)의 1916년 측정 이론(Theory of Measurements)은 신체 측정을 기록하기 위해 "일반적으로 채택된 규칙"이라고 불렀습니다.[42] Churchill Izenhart는 이 관행이 1940년대까지 데이터 분석에서 이미 "잘 확립"되었다고 말했습니다.[43]

은행원 반올림이라는 용어의 기원은 여전히 모호합니다. 이 반올림 방법이 은행 업무에서 표준이 되었다면, 증거를 찾기가 매우 어렵다는 것이 증명되었습니다. 반대로, 유럽연합 집행위원회 보고서의 섹션 2는 유로의 도입과 통화량[44] 반올림은 이전에 은행업에서 반올림에 대한 표준적인 접근법이 없었음을 시사하며, 반올림은 "반올림"되어야 한다고 명시하고 있습니다.

1980년대까지 부동소수점 컴퓨터 산술에 사용되는 반올림 방법은 대개 하드웨어에 의해 고정되고 문서화가 잘 안 되며 일관성이 없으며 컴퓨터의 브랜드와 모델마다 다릅니다. 이러한 상황은 IEEE 754 부동 소수점 표준이 대부분의 컴퓨터 제조업체에서 채택된 후 변경되었습니다. 이 표준은 사용자가 여러 반올림 모드 중에서 선택할 수 있도록 하며, 각 경우에 결과를 반올림하는 방법을 정확하게 지정합니다. 이러한 기능은 수치 계산을 보다 예측 가능하고 기계에 독립적으로 만들었으며, 간격 연산의 효율적이고 일관된 구현을 가능하게 했습니다.

현재 많은 연구가 5 또는 2의 배수로 반올림하는 경향이 있습니다. 예를 들어, Jörg Baten은 고대 인구의 수리 수준을 평가하기 위해 많은 연구에서 나이 축적을 사용했습니다. 그는 인구 문해력이 측정된 역사적 출처 없이 가능한 지역 의 수를 비교할 수 있는 ABCC 지수를 고안했습니다.[45]

프로그래밍 언어의 반올림 함수

대부분의 프로그래밍 언어는 다양한 방식으로 분수 수를 반올림하는 함수나 특수 구문을 제공합니다. FORTRANC와 같은 초기 숫자 언어는 일반적으로 잘림(0을 향해) 한 가지 방법만 제공합니다. 기본 방법은 정수 변수에 분수 번호를 할당하거나 배열의 인덱스로 분수 번호를 사용하는 경우와 같은 특정 컨텍스트에서 암시될 수 있습니다. 다른 종류의 반올림은 명시적으로 프로그래밍되어야 했습니다. 예를 들어 양수를 가장 가까운 정수로 반올림하는 것은 0.5를 더하고 잘라냄으로써 구현할 수 있습니다.

그러나 지난 수십 년 동안 대부분의 언어의 구문과 표준 라이브러리는 적어도 네 가지 기본 반올림 함수(위, 아래, 가장 가까운 것으로, 0으로)를 제공했습니다. 타이브레이킹 방법은 언어와 버전에 따라 다르거나 프로그래머가 선택할 수 있습니다. 여러 언어들이 IEEE 754 부동 소수점 표준을 따르고 있으며, 이러한 함수들은 이중 정밀도 부동 인수를 취하고 동일한 유형의 결과를 반환하는 것으로 정의되며, 필요한 경우 정수로 변환될 수 있습니다. 부동 소수점 유형의 범위가 정수 유형보다 크기 때문에 이 접근 방식은 가짜 오버플로를 방지할 수 있습니다. PHP와 같은 일부 언어는 값을 지정된 소수(예: 4321.5678에서 4321.57 또는 4300)로 반올림하는 기능을 제공합니다. 또한 많은 언어에서 사용자가 지정한 소수점 이하(정밀도)로 반올림하여 소수점을 문자열로 변환할 수 있는 유사 문자열 포맷 기능을 위한 인쇄물을 제공합니다. 반면에 잘라내기(0으로 반올림)는 많은 언어에서 특히 두 정수 값의 분할에 사용하는 기본 반올림 방법입니다.

이와 대조적으로 CSSSVG는 숫자와 측정에 대한 특정한 최대 정밀도를 정의하지 않으며, 그들의 DOMIDL 인터페이스에서 무한한 정밀도를 가진 것처럼 문자열로 취급하고 노출하며 정수와 부동소수점 값을 구별하지 않습니다. 이러한 언어의 구현은 제한된 정밀도로 계산된 숫자를 노출하기 전에 일반적으로 IEEE 754 이중 정밀도 부동 소수점 값으로 변환합니다(특히 표준 자바스크립트 또는 ECM스크립트[46] 인터페이스 바인딩 내).

기타반올림기준

일부 학문 분야나 기관에서는 반올림에 대한 기준이나 지침을 발표했습니다.

미국 기상 관측

1966년 중반에 발표된 가이드라인에서,[47] 미국 연방 기상 조정관 사무소는 "반올림" 타이브레이크 규칙을 사용하여 기상 데이터를 가장 가까운 반올림 숫자로 반올림해야 한다고 결정했습니다. 예를 들어 정수로 반올림한 1.5는 2가 되어야 하고, -1.5는 -1이 되어야 합니다. 그 날짜 이전에는 동점 규칙이 "0에서 반쯤 떨어진 곳"이었습니다.

기상학적으로 마이너스 0

일부 기상학자들은 0.0도에서 -0.5도 사이의 온도를 나타내기 위해 "-0"이라고 적을 수 있습니다. 이 표기법은 음의 부호가 크기가 아무리 작더라도 중요하다고 생각될 때 사용됩니다. 예를 들어 섭씨 눈금에서 온도를 반올림할 때 영하가 결빙을 나타냅니다.[citation needed]

참고 항목

메모들

  1. ^ 이중 반올림이 항상 최종 정밀도로 직접 반올림하는 것과 동일한 값으로 이어지는 경우는 기수가 홀수인 경우입니다.

참고문헌

  1. ^ 이사야 란캄, 브루노 나흐테르게일, 앤 실링: 추상수학 입문으로서의 선형대수학. 세계과학, 싱가포르 2016, ISBN978-981-4730-35-8, p. 186.
  2. ^ Kulisch, Ulrich W. (July 1977). "Mathematical foundation of computer arithmetic". IEEE Transactions on Computers. C-26 (7): 610–621. doi:10.1109/TC.1977.1674893. S2CID 35883481.
  3. ^ Higham, Nicholas John (2002). Accuracy and stability of numerical algorithms. p. 54. ISBN 978-0-89871-521-7.
  4. ^ a b "java.math.RoundingMode". Oracle.
  5. ^ a b "decimal — Decimal fixed point and floating point arithmetic". Python Software Foundation.
  6. ^ 엔지니어링 제도 표준 매뉴얼(NASA), X-673-64-1F, p90
  7. ^ Abbs, Brian; Barker, Chris; Freebairn, Ingrid (2003). Postcards 4 Language Booster: Workbook with Grammar Builder. Pearson Education. p. 85. ISBN 0-13-093904-8. Rounding to the nearest even number is also called 'bankers rounding' because the banks use this technique as well.
    Microsoft Pascal Compiler for the MS-DOS Operating System User's Guide. Microsoft Corporation. 1985. p. 165. Bankers' rounding is used when truncating real numbers that end with .5; that is, odd numbers are rounded up to an even integer, even numbers are rounded down to an even integer.
  8. ^ 1969년 십진통화법 부칙 1
  9. ^ IBM z/Architecture 작동 원리
  10. ^ a b Gupta, Suyog; Angrawl, Ankur; Gopalakrishnan, Kailash; Narayanan, Pritish (2016-02-09). "Deep Learning with Limited Numerical Precision". p. 3. arXiv:1502.02551 [cs.LG].
  11. ^ "Zener Diode Voltage Regulators" (PDF). Archived (PDF) from the original on 2011-07-13. Retrieved 2010-11-24.
  12. ^ "거울 테스터 만들기"
  13. ^ 브루스 트럼프, 크리스틴 슈나이더. "Excel formula는 표준 1%-저항 값을 계산합니다." 전자설계, 2002-01-21. [1]
  14. ^ Parker, D. Stott; Eggert, Paul R.; Pierce, Brad (2000-03-28). "Monte Carlo Arithmetic: a framework for the statistical analysis of roundoff errors". IEEE Computation in Science and Engineering.
  15. ^ Borman, Phil; Chatfield, Marion (2015-11-10). "Avoid the perils of using rounded data". Journal of Pharmaceutical and Biomedical Analysis. 115: 506–507. doi:10.1016/j.jpba.2015.07.021. PMID 26299526.
  16. ^ Deborah R. Hensler (2000). Class Action Dilemmas: Pursuing Public Goals for Private Gain. RAND. pp. 255–293. ISBN 0-8330-2601-1.
  17. ^ Samuel A. Figueroa (July 1995). "When is double rounding innocuous?". ACM SIGNUM Newsletter. ACM. 30 (3): 21–25. doi:10.1145/221332.221334. S2CID 14829295.
  18. ^ Roger Golliver (October 1998). "Efficiently producing default orthogonal IEEE double results using extended IEEE hardware" (PDF). Intel.
  19. ^ Darcy, Joseph D. "JEP 306: Restore Always-Strict Floating-Point Semantics". Retrieved 2021-09-12.
  20. ^ Moore, J. Strother; Lynch, Tom; Kaufmann, Matt (1996). "A mechanically checked proof of the correctness of the kernel of the AMD5K86 floating-point division algorithm" (PDF). IEEE Transactions on Computers. 47. CiteSeerX 10.1.1.43.3309. doi:10.1109/12.713311. Retrieved 2016-08-02.
  21. ^ Boldo, Sylvie; Melquiond, Guillaume (2008). "Emulation of a FMA and correctly-rounded sums: proved algorithms using rounding to odd" (PDF). IEEE Transactions on Computers. 57 (4): 462–471. doi:10.1109/TC.2007.70819. S2CID 1850330. Retrieved 2016-08-02.
  22. ^ "21718 – real.c rounding not perfect". gcc.gnu.org.
  23. ^ Kahan, William Morton. "A Logarithm Too Clever by Half". Retrieved 2008-11-14.
  24. ^ Muller, Jean-Michel; Brisebarre, Nicolas; de Dinechin, Florent; Jeannerod, Claude-Pierre; Lefèvre, Vincent; Melquiond, Guillaume; Revol, Nathalie; Stehlé, Damien; Torres, Serge (2010). "Chapter 12: Solving the Table Maker's Dilemma". Handbook of Floating-Point Arithmetic (1 ed.). Birkhäuser. doi:10.1007/978-0-8176-4705-6. ISBN 978-0-8176-4704-9. LCCN 2009939668.
  25. ^ "NA Digest Sunday, April 18, 1999 Volume 99 : Issue 16". 1999-04-18. Retrieved 2022-08-29.
  26. ^ "Math Library for Java". Archived from the original on 1999-05-08.
  27. ^ "Accurate Portable Mathematical Library". Archived from the original on 2005-02-07.
  28. ^ GitHubmathlib.
  29. ^ "libultim – ultimate correctly-rounded elementary-function library". Archived from the original on 2021-03-01.
  30. ^ "Git - glibc.git/commit". Sourceware.org. Retrieved 2022-07-18.
  31. ^ de Dinechin, Florent; Lauter, Christoph; Muller, Jean-Michel (January–March 2007). "Fast and correctly rounded logarithms in double-precision". RAIRO-Theor. Inf. Appl. 41 (1): 85–102. CiteSeerX 10.1.1.106.6652. doi:10.1051/ita:2007003. HAL ensl-00000007v2.
  32. ^ "CRlibm – Correctly Rounded mathematical library". Archived from the original on 2016-10-27.
  33. ^ GitHubcrlibm
  34. ^ "libmcr – correctly-rounded elementary-function library". Archived from the original on 2021-02-25.
  35. ^ gitHub에서 libcmr.
  36. ^ "The CORE-MATH project". Retrieved 2022-08-30.
  37. ^ Sibidanov, Alexei; Zimmermann, Paul; Glondu, Stéphane (2022). The CORE-MATH Project. 29th IEEE Symposium on Computer Arithmetic (ARITH 2022). Retrieved 2022-08-30.
  38. ^ 던컨 J. 멜빌. "YBC 7289 점토판", 2006
  39. ^ Rules for Rounding Off Numerical Values. American Standards Association. 1940. Z25.1-1940.
    이 표준은 인치-밀리미터 변환을 표준화하기 위해 노력하는 ASA 위원회에서 나왔습니다. 참조:
    또한 이 표준은 다음과 같이 간결하게 광고되었습니다.
    Standard Practice for Using Significant Digits in Test Data to Determine Conformance with Specifications. ASTM. 2013 [1940]. doi:10.1520/E0029-13. E-29.
  40. ^ Woodward, Robert S. (1906). Probability and theory of errors. Mathematical Monographs. Vol. 7. New York: J. Wiley & Son. p. 42. An important fact with regard to the error 1/2 for n even is that its sign is arbitrary, or is not fixed by the computation as is the case with all the other errors. However, the computer's rule, which makes the last rounded figure of an interpolated value even when half a unit is to be disposed of, will, in the long run, make this error as often plus as minus.
  41. ^ Newcomb, Simon (1882). Logarithmic and Other Mathematical Tables with Examples of their Use and Hints on the Art of Computation. New York: Henry Holt. pp. 14–15. Here we have a case in which the half of an odd number is required. [...] A good rule to adopt in such a case is to write the nearest even number.
  42. ^ Tuttle, Lucius (1916). The Theory of Measurements. Philadelphia: Jefferson Laboratory of Physics. p. 29. A fraction perceptibly less than a half should be discarded and more than a half should always be considered as one more unit, but when it is uncertain which figure is the nearer one the universally adopted rule is to record the nearest even number rather than the odd number that is equally near. The reason for this procedure is that in a series of several measurements of the same quantity it will be as apt to make a record too large as it will to make one too small, and so in the average of several such values will cause but a slight error, if any.
  43. ^ Churchill Eisenhart (1947). "Effects of Rounding or Grouping Data". In Eisenhart; Hastay; Wallis (eds.). Selected Techniques of Statistical Analysis for Scientific and Industrial Research, and Production and Management Engineering. New York: McGraw-Hill. pp. 187–223. Retrieved 2014-01-30.
  44. ^ "The Introduction of the Euro and the Rounding of Currency Amounts" (PDF). Archived (PDF) from the original on 2010-10-09. Retrieved 2011-08-19.
  45. ^ Baten, Jörg (2009). "Quantifying Quantitative Literacy: Age Heaping and the History of Human Capital" (PDF). Journal of Economic History. 69 (3): 783–808. doi:10.1017/S0022050709001120. hdl:10230/481. S2CID 35494384.
  46. ^ "ECMA-262 ECMAScript Language Specification" (PDF). ecma-international.org.
  47. ^ OFCM, 2005: 연방 기상 핸드북 No. 1 워싱턴 DC Wayback Machine에서 보관된 1999-04-20, 104 pp.

외부 링크