Stockage des prix dans SQLite, quel type de données utiliser?

15

J'utilise SQLite et j'ai besoin de stocker les prix. SQLite REALtype de données indique qu'il utilise ce floating-pointqui est inacceptable de stockage pour les prix. Existe-t-il un type de données en plus de TEXT que je peux utiliser pour stocker les prix numériquement afin qu'ils soient triés correctement?

unixman83
la source

Réponses:

25

Utilisez un entier et enregistrez les prix comme l'unité commune la plus basse. Donc, pour des dollars et des cents, vous le stockeriez en cents. EG: 1,00 $ serait stocké comme 100.

D'après mon expérience, c'est une pratique standard.

Philᵀᴹ
la source
3
C'est un travail supplémentaire, mais c'est la voie à suivre - vous avez également besoin d'un champ de type de devise pour stocker avec la valeur afin que vous sachiez comment effectuer une reconversion. Vous devez également faire attention - la plupart des devises utilisent deux décimales, mais certaines en utilisent trois. Consultez ISO 4127 pour la liste complète.
lonstar
CLF Chilean Unidad de Fomento utilise 4 décimales. Bitcoin encore plus :-)
Gianluca Ghettini
4

Certainement, utilisez un entier

Vous devrez décider du nombre de décimales que vous supposez et être cohérent au niveau de l'application.

Jack dit d'essayer topanswers.xyz
la source