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?

unixman83
fonte

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.

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

Jack Douglas
fonte