Иногда меня смущают типы данных Activerecord. Эээ, часто. Один из моих вечных вопросов в данном случае:
Что мне использовать:
:decimal
или:float
?
Я часто сталкивался с этой ссылкой: ActiveRecord:: decimal vs: float? , но ответы не совсем ясны, чтобы быть уверенным:
Я видел много потоков, в которых люди прямо рекомендуют никогда не использовать float и всегда использовать десятичные числа. Я также видел предложения некоторых людей использовать float только в научных приложениях.
Вот несколько примеров:
- Геолокация / широта / долгота:
-45.756688
,120.5777777
, ... - Соотношение / процент:
0.9
,1.25
,1.333
,1.4143
, ...
Раньше я использовал :decimal
, но обнаружил, что работа с BigDecimal
объектами в Ruby излишне неудобна по сравнению с float. Я также знаю, что могу использовать :integer
для обозначения денег / центов, например, но это не совсем подходит для других случаев, например, когда количества, точность которых может меняться со временем.
- Каковы преимущества / недостатки каждого из них?
- Какие практические правила помогут определить, какой тип использовать?