Float vs Decimal в ActiveRecord

Иногда типы данных Activerecord меня смущают. Эээ, часто. Один из моих вечных вопросов в данном случае:

Должен ли я использовать : decimal или : float ?

Я часто сталкивался с этой ссылкой, ] ActiveRecord:: decimal vs: float? , но ответы не совсем ясны для меня, чтобы быть уверенным:

Я видел много потоков, в которых люди настоятельно рекомендуют никогда не использовать с плавающей точкой и всегда использовать десятичную дробь. Я также видел предложения некоторых люди должны использовать float только для научных приложений.

Вот несколько примеров случаев:

  • Геолокация / широта / долгота: -45.756688 , 120,5777777 , ...
  • Соотношение / процент: 0,9 , 1,25 , 1,333 , 1,4143 , ...

Я использовал : десятичное в прошлом, но я обнаружил, что работа с объектами BigDecimal в Ruby была излишне неудобной по сравнению с float. Я также знаю, что могу использовать : integer для представления, например, денег / центов, но это не совсем подходит для других случаев, например, когда количества, точность которых может меняться со временем.

  • Каковы преимущества / недостатки использования каждого из них?
  • Какие практические правила помогут определить, какой тип использовать?

274
задан user2262149 27 August 2018 в 20:15
поделиться