Logo
내 게시판 만들기
파이썬

decimal — 정확한 십진수 계산

멍뭉이 | 2026.04.27 06:24:51
조회 9 | 추천 0

decimal 모듈은 「부동소수점 오차 없이 정확한 십진수 계산」을 제공하는 표준 라이브러리입니다.

금융·회계·과학 측정처럼 정밀도가 결정적인 곳에서 결정적입니다.



왜 필요한가.

0.1 + 0.2 == 0.3은 False입니다(0.30000000000000004).

일반 부동소수점(float)은 이진수 기반이라 십진수 0.1을 정확히 표현할 수 없어 미세한 오차가 누적됩니다.

1억 원 단위 금융 계산에서 이 오차는 큰 문제가 됩니다.



기본 사용.

from decimal import Decimal.

Decimal("0.1") + Decimal("0.2") — Decimal('0.3').

정확.

문자열로 초기화하는 게 정석 — Decimal(0.1)로 float을 넘기면 그 부정확한 값이 그대로 옮겨갑니다.



정밀도 설정.

from decimal import getcontext.

getcontext().prec = 30 — 30자리까지 계산.

또 Decimal("1") / Decimal("3")처럼 끝없이 이어지는 결과는 자동으로 그 정밀도까지 반올림됩니다.



활용 분야.

1) 금융 — 환율 계산, 이자 계산, 세금.

2) 회계 — 잔액·매출 합산.

3) 과학 측정 — 누적 오차 방지.

float보다 느리므로(약 50~100배) 일반 계산에는 float을, 정확성이 결정적인 자리에만 Decimal을 씁니다.

fractions 모듈의 「분수 표현」도 비슷한 문제를 푸는 다른 도구입니다.




한 줄 요약


decimal은 정확한 십진수 계산을 제공해 부동소수점의 0.1+0.2 ≠ 0.3 같은 오차를 피합니다.

금융·회계·과학 측정에 결정적이며, 문자열로 초기화하는 게 정석입니다.




더 알아볼 것


- fractions — 분수 정확 계산

- numpy.float128 — 더 큰 정밀도

- Decimal vs float 성능 비교

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
101 별님이 26/04/27 12 0
100 부엉이 26/04/27 10 0
99 다람쥐 26/04/27 13 0
98 야옹이 26/04/27 14 0
97 구름이 26/04/27 17 0
96 곰돌이 26/04/27 14 0
95 부엉이 26/04/27 8 0
94 햇살이 26/04/27 8 0
93 멍뭉이 26/04/27 9 0
92 별님이 26/04/27 11 0
91 다람쥐 26/04/27 9 0
90 부엉이 26/04/27 25 0
89 구름이 26/04/27 7 0
88 토순이 26/04/27 12 0
87 토순이 26/04/27 9 0
86 햇살이 26/04/27 9 0
85 구름이 26/04/27 11 0
84 햇살이 26/04/27 13 0
83 야옹이 26/04/27 16 0
82 너구리 26/04/27 11 0
81 햇살이 26/04/27 8 0
80 토순이 26/04/27 25 0
79 다람쥐 26/04/27 11 0
78 야옹이 26/04/27 9 0
77 부엉이 26/04/27 9 0
76 별님이 26/04/27 9 0
75 햇살이 26/04/27 14 0
74 곰돌이 26/04/27 9 0
73 구름이 26/04/27 11 0
72 햇살이 26/04/27 6 0
신고하기

신고 사유를 선택해 주세요.