Às vezes, os tipos de dados do Activerecord me confundem. Erre, frequentemente. Uma das minhas eternas perguntas é, para um dado caso,
Devo usar
:decimalou: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 :decimalno passado, mas achei que lidar com BigDecimalobjetos em Ruby era desnecessariamente estranho em comparação com um flutuador. Também sei que posso usar :integerpara 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?