Às vezes, os tipos de dados do Activerecord me confundem. Erre, frequentemente. Uma das minhas eternas perguntas é, para um dado caso,
Devo usar
:decimal
ou:float
?
Eu sempre encontrei esse link, ActiveRecord:: decimal vs: float? , mas as respostas não são suficientemente claras para que eu tenha certeza:
Eu já vi muitos tópicos em que as pessoas recomendam flat out para nunca usar float e sempre usar decimal. Também vi sugestões de algumas pessoas para usar o float apenas para aplicações científicas.
Aqui estão alguns exemplos de casos:
- Geolocalização / latitude / longitude:
-45.756688
,120.5777777
, ... - Rácio / porcentagem:
0.9
,1.25
,1.333
,1.4143
, ...
Eu usei :decimal
no passado, mas achei que lidar com BigDecimal
objetos em Ruby era desnecessariamente estranho em comparação com um flutuador. Também sei que posso usar :integer
para representar dinheiro / centavos, por exemplo, mas não se encaixa em outros casos, por exemplo, quando quantidades em que a precisão pode mudar com o tempo.
- Quais são as vantagens / desvantagens de usar cada um?
- Quais seriam algumas boas regras práticas para saber qual tipo usar?