Parfois, Activerecord types de données me confondre. Err, souvent. Un de mes éternelles questions est, pour un cas donné,
Dois-je utiliser
:decimal
ou:float
?
J'ai souvent rencontré ce lien, ActiveRecord: :décimal vs :float?, mais les réponses ne sont pas tout à fait assez clair pour moi, pour être certain:
J'ai vu beaucoup de discussions où les gens de recommander à plat pour ne plus utiliser de flotteur et de toujours utiliser la virgule. J'ai aussi vu des suggestions faites par certains les gens à utiliser float pour les applications scientifiques.
Voici quelques exemples de cas:
- Géolocalisation/latitude/longitude:
-45.756688
,120.5777777
, ... - Ratio/pourcentage:
0.9
,1.25
,1.333
,1.4143
, ...
Je l'ai utilisé, :decimal
dans le passé, mais j'ai trouvé traiter avec BigDecimal
objets en Ruby était inutilement maladroite par rapport à un flotteur. Je sais aussi que je peux utiliser :integer
pour représenter de l'argent/cents, par exemple, mais il n'a pas tout à fait adapté pour d'autres cas, par exemple lorsque les quantités dans lesquelles la précision pourrait changer au fil du temps.
- Quels sont les avantages/inconvénients de l'utilisation de chacun?
- Ce serait quelques bonnes règles de base à savoir quel type d'utilisation?