Sobes.tech
Middle
70

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

Сұралған компаниялар
РиглаРигла

AI-дан жауап

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 — количество цифр после запятой.