본문 바로가기
재밌는 수학 퀴즈와 문제

Decimal, Fraction, float 세 가지 실수 표현 방식

by silvermath 2025. 4. 26.
반응형

Decimal, Fraction, float 세 가지 실수 표현 방식

아래에 Decimal, Fraction, float 세 가지 실수 표현 방식의 차이점과 혼합 연산 시 주의점을 정리해드릴게요.


✅ 1. 세 가지 실수 표현 방식 비교

항목 float Decimal Fraction
표현 방식 이진 부동소수점 십진 고정소수점 정수 분수 (a/b)
정밀도 부정확 (오차 존재) 매우 정확 (사용자 설정 가능) 무한 정밀도
연산 속도 빠름 느림 가장 느림
용도 일반 계산용 금융·세무 계산 수학/정수론/기하 정확도
예시 0.1 + 0.2 != 0.3 Decimal('0.1') + Decimal('0.2') == Decimal('0.3') Fraction(1, 3) = 정확히 1/3

 


✅ 2. 타입 혼합 연산 가능 여부

연산 가능 여부 설명
float + float 일반 실수 연산
Decimal + int 자동 형변환
Decimal + float 오류 발생 (TypeError)
Decimal + Decimal 정확한 십진 연산
Fraction + int 자동 변환
Fraction + float 오류 또는 의도치 않은 결과
Fraction + Fraction 수학적으로 정확

 


✅ 3. 사용 시 주의사항

🧨 잘못된 예

from decimal import Decimal
a = Decimal('1.1')
a + 2.2      # ❌ float와 혼합 → TypeError

✅ 올바른 방법

a + Decimal('2.2')  # ✅ 정확한 Decimal 연산

✅ 4. 추천 사용 가이드

상황 추천 타입 이유
일반 수학/공학 계산 float 속도와 호환성
금융·회계·소수점 정확성 Decimal 0.01 단위 정확도 보장
수학적 분수 계산 Fraction 유리수로 완전 표현 가능