Speichern von Preisen in SQLite, welcher Datentyp soll verwendet werden?


15

Ich benutze SQLite und muss die Preise speichern. SQLite die REALDaten-Typ sagt , es verwendet floating-pointdas ist nicht akzeptabel für die Preise der Lagerung. Gibt es neben TEXT einen Datentyp, mit dem ich Preise numerisch speichern kann, damit sie richtig sortiert werden?

Antworten:


25

Verwenden Sie eine Ganzzahl und speichern Sie die Preise als niedrigste gemeinsame Einheit. Für Dollars und Cents würde man es also in Cents aufbewahren. EG: 1,00 $ würden als 100 gespeichert.

Nach meiner Erfahrung ist es Standardpraxis.


3
Es ist zusätzliche Arbeit, aber dies ist der richtige Weg - Sie müssen auch ein Währungstypfeld mit dem Wert speichern, damit Sie wissen, wie Sie zurück konvertieren können. Sie müssen auch aufpassen - die meisten Währungen verwenden 2 Dezimalstellen, einige drei. Die vollständige Liste finden Sie in ISO 4127.
Lonstar

CLF Chilenische Unidad de Fomento verwendet 4 Dezimalstellen. Bitcoin noch mehr :-)
Gianluca Ghettini

4

Verwenden Sie auf jeden Fall eine Ganzzahl

Sie müssen entscheiden, wie viele Dezimalstellen Sie annehmen, und auf Anwendungsebene konsistent sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.