부동소수점 오차를 피해야 하는 계산을 다룹니다.
Decimal은 십진 문자열을 기준으로 정확한 십진 계산을 제공합니다. 금액을 만들 때 float를 먼저 거치면 이미 생긴 오차도 함께 전달되므로 문자열에서 Decimal을 생성하는 습관이 중요합니다.
예제에서 Decimal("0.1") 부분부터 찾으세요. 값을 만드는 표현식과 그 값을 다음 문장으로 넘기는 흐름을 한 줄씩 따라가면 실행 결과를 스스로 설명할 수 있습니다.
Decimal과 float를 무심코 섞지 말고 한 계산 흐름에서 숫자 표현 방식을 통일합니다. quantize로 필요한 자릿수와 반올림 규칙을 명시할 수 있습니다.
결제 시스템에서는 통화별 최소 단위, 세금 반올림 시점, 합계 검증 규칙을 도메인 정책으로 고정해야 합니다.
이 코드는 브라우저의 실제 Python에서 실행됩니다. 먼저 현재 결과를 확인한 뒤 할인율을 15%로 바꾸고 최종 금액을 소수 둘째 자리로 반올림하세요.
Decimal(0.1)과 Decimal('0.1')은 같다고 생각하기 쉽지만 전자는 float의 근삿값을 가져옵니다.
직접 바꿔보세요할인율을 15%로 바꾸고 최종 금액을 소수 둘째 자리로 반올림하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.