반응형
Decimal과 float 타입은 연산이 안됨
Decimal과 int 타입은 직접 연산할 수 있지만, Decimal과 float 타입을 직접 더할 수 없기 때문입니다.

🧨 오류 메시지 해석
TypeError: unsupported operand type(s) for +: 'decimal.Decimal' and 'float'
- a + 3.2에서:
- a는 Decimal
- 3.2는 float
- 파이썬은 Decimal + float을 허용하지 않음
- 정확성 보장을 위해 서로 다른 실수 타입은 자동 변환하지 않습니다
✅ 해결 방법: 둘 다 Decimal로 통일
방법 1: 숫자를 Decimal로 변환
from decimal import Decimal
a = Decimal('35.72')
b = Decimal('3.2')
a + Decimal(b) # 또는
a + Decimal('3.2') # 더 안전함
방법 2: 처음부터 float 대신 문자열로 Decimal 생성
Decimal('3.2') # ← 정확함
Decimal(3.2) # ← float에서 변환하므로 부정확할 수 있음
📌 요약
| 잘못된 연산 | 수정 방법 |
| Decimal + float | Decimal + Decimal |
| a + 3.2 | a + Decimal('3.2') |
| Decimal(3.2) | Decimal('3.2') ← 더 안전함 |
🔍 참고로…
Decimal + int는 허용됩니다:
Decimal('10.5') + 2 → Decimal('12.5')