Полный текст
Как хранить деньги в базах данных и почему это не так просто, как кажетсяХранение денег — вещь только на первый взгляд простая, а на деле содержит множество подводных камней. Выбрав не тот тип данных, можно получить неточности в расчётах, возможна путаница при переводе суммы из одной валюты в другую. А если ещё и подключать внешние API, у каждого из которых своя точность для одних и тех же валют, уследить за совместимостью ещё труднее.Разбираем, как решают эти проблемы Stripe, PayPal, Google Wallet и другие платёжные системы. Сравниваем три основных подхода: Integer minor units, Decimal base units и String base units.