Python Glossary English

все Python 3Числа и математикапонятие

decimal.Decimal

decimal

Точная десятичная арифметика без ошибок float. Незаменима в финансовых вычислениях.

Синтаксис

from decimal import Decimal
Decimal('1.1') + Decimal('2.2')

Создавайте Decimal из строки: Decimal(0.1) берёт уже испорченное двоичное значение float и честно печатает его во всех подробностях, а Decimal('0.1') — ровно одну десятую. Смешивать Decimal с float в арифметике Python откажется (TypeError), с int — пожалуйста; и точность по умолчанию — 28 значащих цифр контекста, поэтому деление вроде 10/3 всё же округляется, просто предсказуемо и в десятичной системе.

Примеры

from decimal import Decimal
Decimal('1.1') + Decimal('2.2') # → Decimal('3.3')
1.1 + 2.2 # → 3.3000000000000003
Decimal('10') / Decimal('3') # → Decimal('3.333...3')
Decimal('0.1') * 3 == Decimal('0.3') # → True
Decimal(1) / Decimal(7) # → Decimal('0.1428...')  (28 цифр)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности