Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: money, decimal, precision, rounding, financial

Как правильно работать с денежными значениями в Python? Какой тип данных для этого лучше использовать?

Проверяет знание точных типов для финансовых вычислений.

Короткий ответ

Для денежных значений лучше использовать decimal.Decimal, так как он хранит мантиссу и показатель в десятичном формате, даёт точные результаты и позволяет управлять точностью и округлением. float использовать не стоит из‑за двоичных погрешностей.

Длинный ответ

Проблема float: двоичное представление даёт ошибки (0.1 + 0.2 != 0.3).

decimal.Decimal:

  • Хранит десятичную мантиссу и экспоненту.

  • Управление контекстом (getcontext().prec, rounding).

Пример:

from decimal import Decimal, getcontext
getcontext().prec = 4
print(Decimal('0.10') + Decimal('0.20'))  # 0.30

Вывод: для финансов всегда выбирать Decimal, float — только для приблизительных задач.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Python

    Python

Ключевые слова

#money

#decimal

#precision

#rounding

#financial

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.