A veces, los tipos de datos de Activerecord me confunden. Err, a menudo. Una de mis preguntas eternas es, para un caso dado,
¿Debo usar
:decimal
o:float
?
A menudo me he encontrado con este enlace, ActiveRecord:: decimal vs: float? , pero las respuestas no son lo suficientemente claras para estar seguro:
He visto muchos hilos en los que la gente recomienda de plano que nunca use flotante y siempre use decimal. También he visto sugerencias de algunas personas para usar float solo para aplicaciones científicas.
Aquí hay algunos casos de ejemplo:
- Geolocalización / latitud / longitud:
-45.756688
,120.5777777
, ... - Relación / porcentaje:
0.9
,1.25
,1.333
,1.4143
, ...
Lo he usado :decimal
en el pasado, pero descubrí que tratar con BigDecimal
objetos en Ruby era innecesariamente incómodo en comparación con un flotador. También sé que puedo usar :integer
para representar dinero / centavos, por ejemplo, pero no encaja en otros casos, por ejemplo, cuando las cantidades en las que la precisión podría cambiar con el tiempo.
- ¿Cuáles son las ventajas / desventajas de usar cada uno?
- ¿Cuáles serían algunas buenas reglas generales para saber qué tipo usar?