Как хранить деньги в БД?

Middle
176 просмотров
AFK Offer AI

Никогда float — из-за потери точности (0.1 + 0.2 != 0.3). Используй numeric/decimal в PostgreSQL — точная арифметика. В Go маппишь на shopspring/decimal или pgtype.Numeric. Альтернатива — хранить в копейках как integer (1990 = 19.90₽), это проще и быстрее. Для мультивалюты добавляй колонку currency. Пересчёт курсов — отдельная логика.

Следующий вопрос

Как дебажить gRPC проблемы?