Sobes.tech
Назад к вопросам
Middle
15

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

Компании, где спрашивали
РиглаРигла

Ответ от нейросети

sobes.tech AI

Для хранения денежных сумм лучше использовать тип данных с фиксированной точностью, например, decimal или numeric (в зависимости от языка и СУБД). Эти типы хранят числа с точным представлением десятичных дробей и не подвержены ошибкам округления, характерным для чисел с плавающей точкой (float, double).

Пример на Python с использованием decimal:

from decimal import Decimal

price = Decimal('19.99')
tax = Decimal('0.07')
total = price + price * tax
print(total)  # Выведет точное значение без ошибок округления

В базах данных, например, в PostgreSQL, для денежных сумм используют тип numeric(precision, scale), где precision — общее количество цифр, а scale — количество цифр после запятой.