Manchmal verwirren mich Activerecord-Datentypen. Ähm, oft. Eine meiner ewigen Fragen ist für einen bestimmten Fall:
Soll ich verwenden
:decimal
oder:float
?
Ich bin oft auf diesen Link gestoßen , ActiveRecord :: decimal vs: float? , aber die Antworten sind nicht klar genug, um sicher zu sein:
Ich habe viele Threads gesehen, in denen Leute empfehlen, niemals float und immer dezimal zu verwenden. Ich habe auch Vorschläge von einigen Leuten gesehen, float nur für wissenschaftliche Anwendungen zu verwenden.
Hier einige Beispielfälle:
- Geolokalisierung / Breite / Länge:
-45.756688
,120.5777777
, ... - Ratio / Prozentsatz:
0.9
,1.25
,1.333
,1.4143
, ...
Ich habe :decimal
in der Vergangenheit verwendet, aber ich fand, dass der Umgang mit BigDecimal
Objekten in Ruby im Vergleich zu einem Float unnötig umständlich war. Ich weiß auch, dass ich :integer
zum Beispiel Geld / Cent darstellen kann, aber es passt nicht ganz für andere Fälle, zum Beispiel wenn sich Mengen, in denen sich die Genauigkeit ändert, im Laufe der Zeit ändern könnten.
- Was sind die Vor- und Nachteile der Verwendung?
- Was wären gute Faustregeln, um zu wissen, welcher Typ verwendet werden soll?