все 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Сообщить о неточности