Как правильно обращаться с валютными ценностями?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как правильно обращаться с валютными ценностями?

Сообщение Anonymous »

У меня есть система, в которой все суммы транзакций хранятся в целых числах (центах).
До сих пор она работала нормально: уже зарегистрировано более 20 миллионов транзакций.
Однако недавно я столкнулся со случаем использования, когда эквивалентное целое значение становится нулевым после преобразования в центы, что приводит к проблемам с небольшими суммами

Код: Выделить всё

# Models
class Wallet(models.Model):
balance = models.IntegerField()

class WalletTransaction(models.Model):
wallet = models.ForeignKey(Wallet, on_delete=models.CASCADE)
amount = models.IntegerField()  # Stored in cents
transaction_type = models.CharField(max_length=50)

# Updating wallet balance and creating transaction
cost_price = 0.0025
cost_price_in_cents = cost_price * 100  # Converts to 0.25 cents
wallet = Wallet.objects.get(id=1)
wallet.balance -= cost_price_in_cents
wallet.save()
WalletTransaction.objects.create(wallet=wallet, amount=cost_price_in_cents)
Здесь баланс списывается на 0,25, но в истории транзакций кошелька он равен 0.

Подробнее здесь: https://stackoverflow.com/questions/790 ... s-properly
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Найдите счета, затронутые валютными курсами [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Pandas Excel Write Проблема с логическими ценностями: «Истинно» становится «истинным»
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Лучший способ справиться с нулевыми ценностями и выбросами? [закрыто]
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как марировать enum с ценностями типа functools.partial
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Как я могу более эффективно консолидировать Numpy Ndarray с целочисленными ценностями?
    Anonymous » » в форуме Python
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»