Armazenando preços no SQLite, que tipo de dados usar?


15

Estou usando o SQLite e preciso armazenar preços. Do SQLite REAL-tipo de dados diz que usa floating-pointo que é inaceitável armazenamento para os preços. Existe um tipo de dados além do TEXTO que eu possa usar para armazenar preços numericamente para que eles sejam classificados corretamente?

Respostas:


25

Use um número inteiro e armazene os preços como a menor unidade comum. Então, por dólares e centavos, você armazenaria em centavos. EG: US $ 1,00 seriam armazenados como 100.

Na minha experiência, é uma prática padrão.


3
É um trabalho extra, mas este é o caminho a percorrer - você também precisa de um campo do tipo de moeda para armazenar com o valor para saber como converter novamente. Você precisa prestar atenção também - a maioria das moedas usa duas casas decimais, mas algumas usam três. Confira a ISO 4127 para a lista completa.
lonstar

A Universidade de Fomento chilena do CLF usa 4 casas decimais. Bitcoin ainda mais :-)
Gianluca Ghettini

4

Certamente, use inteiro

Você terá que decidir quantas casas decimais está assumindo e ser consistente no nível do aplicativo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.