주제 이해를 돕기 위한 AI 생성 이미지 · LTCT 자체 제작오늘의 질문계산 결과의 마지막 자릿수가 아주 조금 다를 때 오류와 표현 한계를 어떻게 구별할까요?
0.1과 0.2의 이진 부동소수점 합이 0.30000000000000004가 되어 완전 일치는 실패하지만 작은 허용오차 안에서는 같게 처리되는 비교 그림입니다. · 한국논리학협회 자체 제작그림 크게 보기 ↗010.1은 컴퓨터 안에서 정확한 이진 분수가 아닙니다
십진수 0.1은 유한한 이진 분수로 정확히 끝나지 않습니다. 컴퓨터는 가장 가까운 표현 가능한 값으로 저장합니다.
그래서 0.1+0.2를 충분히 많은 자리로 표시하면 0.30000000000000004가 될 수 있습니다. 계산 규칙의 버그라기보다 표현 방식의 결과입니다.
참고 · Python Software Foundation — 이진 부동소수점의 표현 한계 ↗
02완전 일치와 허용오차 비교는 다른 규칙입니다
완전 일치는 두 비트 표현이 같아야 참입니다. 허용오차 비교는 차이의 절댓값이 정한 경계 안에 있는지를 묻습니다.
0.1+0.2와 0.3의 차이는 약 5.55×10⁻¹⁷입니다. 10⁻¹⁵를 허용하면 같게 처리되지만, 허용오차 0이면 다릅니다.
03허용오차를 크게 잡으면 다른 값도 같아집니다
무조건 큰 허용오차를 쓰면 실제 차이를 놓칠 수 있습니다. 센서 해상도, 단위, 누적 계산 횟수, 실패 비용에 맞춰 절대오차나 상대오차 규칙을 정합니다.
원 단위 금액처럼 십진 정확성이 중요한 경우에는 원을 정수로 저장하거나 십진 자료형을 사용합니다. 이 활동은 한 가지 허용오차를 만능 답으로 권하지 않습니다.
계산값0.30000000000000004목표0.3차이5.551e-17완전 일치아니요현재 규칙다르게 처리 선택한 규칙에서는 다릅니다.이 도구는 자바스크립트의 이진 부동소수점 계산을 보여 줍니다. 허용 오차는 측정 정밀도와 업무 규칙에 맞춰 정해야 하며, 금액처럼 십진 정확성이 필요한 곳은 정수 단위나 십진 자료형을 검토합니다.
관계를 읽고, 다른 상황에 적용하기두 문제로 생각 확인
나의 설명으로 마무리오늘 발견한 관계
0 / 4,000자
메모는 현재 기기의 브라우저에만 보관됩니다. 계정이나 다른 기기에는 동기화되지 않습니다.
출처와 제작 안내
원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.
- 이진 부동소수점의 표현 한계 ↗Python Software FoundationFloating-Point Arithmetic: Issues and Limitations
2026년 10월 3일 Python 3.14.6 문서에서 대부분의 십진 소수가 이진 분수로 정확히 표현되지 않으며 0.1도 근삿값으로 저장된다는 설명을 확인했습니다. 화면 계산은 자바스크립트 Number로 실행합니다.