В каком типе данных хранить amount (сумму денег) в PostgreSQL?

Для денег в PostgreSQL обычно используют bigint в минимальных единицах либо numeric(p,s) с явной точностью. Float и double precision не подходят для точного денежного учёта.

Короткий ответ

Что ответить на собеседовании

Для денег в PostgreSQL обычно используют bigint в минимальных единицах либо numeric(p,s) с явной точностью. Float и double precision не подходят для точного денежного учёта.

Подробный разбор

Ответ с пояснениями

Для денег в PostgreSQL обычно используют bigint в минимальных единицах либо numeric(p,s) с явной точностью. Float и double precision не подходят для точного денежного учёта.

Храните валюту отдельно и определите правила округления. Bigint удобен для фиксированного масштаба, numeric — когда требуется точная десятичная дробь с заданной шкалой. Учитывайте диапазон промежуточных сумм и конвертации. Выбор зависит от бизнес-контракта, а не только названия поля amount; разные валюты нельзя складывать без правила пересчёта.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее