Manchmal verwirren mich Activerecord-Datentypen. Ähm, oft. Eine meiner ewigen Fragen ist für einen bestimmten Fall:
Soll ich verwenden
:decimaloder: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 :decimalin der Vergangenheit verwendet, aber ich fand, dass der Umgang mit BigDecimalObjekten in Ruby im Vergleich zu einem Float unnötig umständlich war. Ich weiß auch, dass ich :integerzum 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?