AI 보이는 추론 실험실 · 부동소수점과 허용오차

AI가 0.1 더하기 0.2를 0.3과 다르다고 판정해도 될까?

이진 부동소수점에서 단순한 십진 소수도 근삿값입니다. 두 수·목표·허용오차를 바꿔 완전 일치와 목적에 맞는 비교를 구분합니다.

탐구게시 2026-10-03읽기·실험 약 13분확인 문제 2개교육용 계산한국논리학협회 자체 제작제작·검수 LTCT 편집부

정밀 측정실에서 성인 분석가와 기술자가 작은 색상 추와 허용오차 장치를 비교하고 작은 공식 갈색 안경 올빼미가 비교 표식을 움직이는 장면
주제 이해를 돕기 위한 AI 생성 이미지 · LTCT 자체 제작
오늘의 질문

계산 결과의 마지막 자릿수가 아주 조금 다를 때 오류와 표현 한계를 어떻게 구별할까요?

0.1과 0.2의 이진 부동소수점 합이 0.30000000000000004가 되어 완전 일치는 실패하지만 작은 허용오차 안에서는 같게 처리되는 비교 그림입니다.
0.1과 0.2의 이진 부동소수점 합이 0.30000000000000004가 되어 완전 일치는 실패하지만 작은 허용오차 안에서는 같게 처리되는 비교 그림입니다. · 한국논리학협회 자체 제작
그림 크게 보기 ↗
01

0.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

허용오차를 크게 잡으면 다른 값도 같아집니다

무조건 큰 허용오차를 쓰면 실제 차이를 놓칠 수 있습니다. 센서 해상도, 단위, 누적 계산 횟수, 실패 비용에 맞춰 절대오차나 상대오차 규칙을 정합니다.

원 단위 금액처럼 십진 정확성이 중요한 경우에는 원을 정수로 저장하거나 십진 자료형을 사용합니다. 이 활동은 한 가지 허용오차를 만능 답으로 권하지 않습니다.

직접 확인하기 · 교육용 계산

두 소수·목표값·허용오차를 바꾸며 비교 규칙 확인하기

계산값은 JavaScript Number의 IEEE 754 배정밀도 이진 부동소수점입니다. 같게 처리 조건은 |합−목표|≤허용오차입니다. 허용오차 자체는 업무 목적에 따라 정해야 합니다.

계산값0.30000000000000004
목표0.3
차이5.551e-17
완전 일치아니요
현재 규칙다르게 처리
선택한 규칙에서는 다릅니다.

이 도구는 자바스크립트의 이진 부동소수점 계산을 보여 줍니다. 허용 오차는 측정 정밀도와 업무 규칙에 맞춰 정해야 하며, 금액처럼 십진 정확성이 필요한 곳은 정수 단위나 십진 자료형을 검토합니다.

관계를 읽고, 다른 상황에 적용하기

두 문제로 생각 확인

1이진 부동소수점에서 0.1+0.2가 0.3과 완전 일치하지 않을 수 있는 주된 까닭은?
2허용오차를 정할 때 가장 적절한 기준은?

두 문제의 답을 모두 선택하면 해설을 볼 수 있습니다.

나의 설명으로 마무리

오늘 발견한 관계

0 / 4,000자

메모는 현재 기기의 브라우저에만 보관됩니다. 계정이나 다른 기기에는 동기화되지 않습니다.

출처와 제작 안내

원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.

  1. 이진 부동소수점의 표현 한계 ↗Python Software FoundationFloating-Point Arithmetic: Issues and Limitations

    2026년 10월 3일 Python 3.14.6 문서에서 대부분의 십진 소수가 이진 분수로 정확히 표현되지 않으며 0.1도 근삿값으로 저장된다는 설명을 확인했습니다. 화면 계산은 자바스크립트 Number로 실행합니다.