Деньги не должны теряться
В пул-расчётах на N победителей обнаружился классический враг —
number в JavaScript: бесконечная дробь, накопленная
погрешность, потеря доверия пользователей. Не критичный баг,
хуже — систематическая ненадёжность.
Выход не в аккуратности разработчиков, а в архитектуре: единая
утилита на decimal.js как доменный примитив,
decimal(12,4) на уровне БД, форматирование до двух
знаков строго в UI. Атомарные транзакции: активация и списание
либо оба, либо никакой. Финансовая точность стала свойством
системы.