0
0
PythonHow-ToBeginner · 3 min read

How to Use Decimal Module in Python for Precise Calculations

Use the decimal module in Python by importing it and creating Decimal objects for precise decimal arithmetic. This helps avoid common floating-point errors by working with exact decimal values instead of binary floats.
📐

Syntax

The decimal module provides the Decimal class to create decimal numbers with exact precision.

Basic usage pattern:

  • from decimal import Decimal - imports the Decimal class.
  • Decimal('number_as_string') - creates a Decimal object from a string for exact value.
  • Use Decimal objects in arithmetic operations to maintain precision.
python
from decimal import Decimal

# Create Decimal objects
a = Decimal('0.1')
b = Decimal('0.2')

# Add decimals
result = a + b
print(result)
Output
0.3
💻

Example

This example shows how using Decimal avoids floating-point errors common with float type.

python
from decimal import Decimal

# Using float (inexact)
float_sum = 0.1 + 0.2
print('Float sum:', float_sum)

# Using Decimal (exact)
decimal_sum = Decimal('0.1') + Decimal('0.2')
print('Decimal sum:', decimal_sum)
Output
Float sum: 0.30000000000000004 Decimal sum: 0.3
⚠️

Common Pitfalls

Common mistakes include creating Decimal objects directly from floats, which can carry floating-point errors into decimals.

Always create Decimal from strings or integers to keep precision.

python
from decimal import Decimal

# Wrong: creating Decimal from float
wrong_decimal = Decimal(0.1)
print('Wrong Decimal:', wrong_decimal)

# Right: creating Decimal from string
right_decimal = Decimal('0.1')
print('Right Decimal:', right_decimal)
Output
Wrong Decimal: 0.1000000000000000055511151231257827021181583404541015625 Right Decimal: 0.1
📊

Quick Reference

Summary tips for using the decimal module:

  • Import with from decimal import Decimal.
  • Create decimals from strings or integers, not floats.
  • Use decimals for precise financial or scientific calculations.
  • Decimal arithmetic respects exact decimal places.
  • Use decimal.getcontext() to control precision and rounding.

Key Takeaways

Import Decimal from the decimal module to work with precise decimal numbers.
Always create Decimal objects from strings or integers to avoid floating-point errors.
Decimal arithmetic maintains exact precision, unlike float arithmetic.
Use Decimal for financial and scientific calculations requiring accuracy.
Control precision and rounding using decimal's context settings.