Выбор ответа Junior ER-модели и нормализация обновлено

Тип для денег

Вопрос

Какой тип выбрать в PostgreSQL для суммы заказа в рублях с копейками?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: numeric(12,2). numeric хранит десятичные числа точно, без ошибок округления. real и double precision это числа с плавающей точкой: 0.1 + 0.2 у них не равно 0.3, для денег недопустимо. text не даёт считать и проверять значения.

Варианты ответа

  1. text
  2. double precision
  3. numeric(12,2)правильный ответ
  4. real

Разбор

numeric хранит десятичные числа точно, без ошибок округления. real и double precision это числа с плавающей точкой: 0.1 + 0.2 у них не равно 0.3, для денег недопустимо. text не даёт считать и проверять значения. Иногда деньги хранят целыми копейками в bigint, это тоже корректный подход.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.