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?

unixman83
quelle

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.

Philᵀᴹ
quelle
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.

Jack Douglas
quelle