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?

unixman83
źródło

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.

Philᵀᴹ
źródło
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
4

Z pewnością użyj liczby całkowitej

Będziesz musiał zdecydować, ile miejsc dziesiętnych przyjmujesz i zachować spójność na poziomie aplikacji.

Jack mówi, że spróbuj topanswers.xyz
źródło