Przechowywanie cen w SQLite, jakiego typu danych użyć?


15

Korzystam z SQLite i muszę przechowywać ceny. REALTyp danych SQLite mówi, że używa, floating-pointco jest niedopuszczalnym miejscem do przechowywania cen. Czy oprócz TEKSTU istnieje inny typ danych, którego można używać do przechowywania cen w sposób numeryczny, aby były one poprawnie sortowane?

Odpowiedzi:


25

Użyj liczby całkowitej i zapisz ceny jako najniższą wspólną jednostkę. Więc za dolary i centy przechowujesz je w centach. EG: 1,00 USD byłoby przechowywane jako 100.

Z mojego doświadczenia wynika, że ​​jest to standardowa praktyka.


3
To dodatkowa praca, ale jest to właściwa droga - potrzebujesz także pola typu waluty do przechowywania wartości, abyś wiedział, jak dokonać konwersji. Trzeba też zwrócić uwagę - większość walut używa 2 miejsc po przecinku, ale niektóre używają trzech. Pełna lista znajduje się w ISO 4127.
lonstar

CLF Chilijski Unidad de Fomento używa 4 miejsc po przecinku. Bitcoin jeszcze więcej :-)
Gianluca Ghettini

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.