Ich denke, Floats sind nicht ideal für die Währung. Mongoid unterstützt Float und BigInteger. Was ist der beste Ansatz zum Speichern und Arbeiten mit Währungswerten?Datentyp für Währung mit Mongoid
12
A
Antwort
6
Vielleicht möchten Sie sich die Money gem ansehen.
Die Art, wie es funktioniert, ist, Geldbeträge in Cent darzustellen und ganze Zahlen zu verwenden. Sie können diesem Weg folgen und Ihre Daten als Integer speichern, so dass Sie sich nicht mit der Float-Genauigkeit beschäftigen müssen.
0
Floats würden für die Währung gut funktionieren, wenn Sie den Bruchteil nicht tatsächlich verwendet haben, dh wenn Sie nur vorskalierte Integralwerte gespeichert haben. Floats speichern Ganzzahlen und führen Integer-Ops genau aus.
Natürlich könnten Sie an diesem Punkt auch Ganzzahlen verwenden.
1
Was Simone sagt.
Ich habe gerade das Geld-Juwel in mein Projekt eingefügt und Sie können es auch als Money-Typ speichern.
class Product
include Mongoid::Document
field :price, type: Money
end
Money.class_eval do
# Converts an object of this instance into a database friendly value.
def mongoize
[cents, currency.to_s]
end
class << self
# Get the object as it was stored in the database, and instantiate
# this custom class from it.
def demongoize(object)
cur = object[1] || Money.default_currency
Money.new(object[0], cur)
end
# Takes any possible object and converts it to how it would be
# stored in the database.
def mongoize(object)
case object
when Money
object.mongoize
else object
end
end
# Converts the object that was supplied to a criteria and converts it
# into a database friendly form.
def evolve(object)
case object
when Money then object.mongoize
else object
end
end
end
end
Verwandte Themen
- 1. Welchen Swift-Datentyp verwende ich für Währung?
- 2. Währung Datentyp von VB 6 zu C++
- 3. PostgreSQL: Welcher Datentyp sollte für die Währung verwendet werden?
- 4. Core Data - Dezimaltyp für Währung
- 5. Vereinigung mit proc für mongoid
- 6. Währung für iPhone lokalisieren
- 7. Datatables-Format für Währung
- 8. Store-Funktionen in Mongoid mit Mongoid 3
- 9. find_by_sql Entsprechung für Mongoid?
- 10. Geocoding-Edelstein für Mongoid
- 11. Format Währung mit Javascript
- 12. String.format Währung Summe Rundungsausgaben
- 13. Deprecation Warnung für Attribut ‚Währung‘
- 14. Wie Regex für Währung verwenden
- 15. Mongoid-Array mit Leerzeichen
- 16. Mongoid, Hilfe mit Benachrichtigungen
- 17. Wie man ein Feld als Währung zeigt, aber mit dem Datentyp Text - Access 2013
- 18. C# Dezimal zu VB6 Währung
- 19. Rails Währung mit 2 Komma
- 20. Feldaliase mit Mongoid und Rails
- 21. Javascript regexp für Betrag und Währung
- 22. Internationalisierung (i18n) für Nummer, Datum & Währung (JavaScript)
- 23. Oracle-Datentyp für Textdatei?
- 24. Geeigneter Datentyp für Prozentwerte?
- 25. Anmerkung für spezifischen Datentyp
- 26. Django: FloatField oder DecimalField für Währung?
- 27. String-Format für Zahlen oder Währung?
- 28. UK Währung Regulärer Ausdruck für Javascript
- 29. Speichern Zeitstempel als Nummer Mongoid
- 30. Mongoid 5: find_one_and_update mit returnNewDocument
Ich lese, dass "feste Genauigkeit" Anzahl Bibliotheken benötigt werden, wenn mit Währung arbeiten. – timstepp
http://www.codeguru.com/forum/showthread.php?threadid=503157 ist ein Beispiel für eine Diskussion. – timstepp