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