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