Próbuję przechowywać wartości walut w bazie danych sqlite w systemie Android. Nie sądzę, żeby tak było int
zostaną użyte tutaj. Słyszałem, że Bigdecimal
może być użyty. Jeśli ktoś może mi powiedzieć, w jaki sposób należy go użyć do wysyłania wartości do bazy danych sqlite.
Odpowiedzi:
11 dla odpowiedzi nr 1Przechowuj BigDecimal jako ciąg.
Możesz użyć metody toPlainString ().
BigDecimal b = new BigDecimal();
String s = b.toPlainString();
Następnie, kiedy wyciągniesz go z bazy danych, możesz utworzyć nowy BigDecimal.
BigDecimal c = new BigDecimal(String s)
Wierzcie lub nie, SQLite 3.0 przechowuje wszystkie typy danych jako ciągi, nawet jeśli powiesz, że powinna to być liczba całkowita. Spojrzeć na ta strona z oficjalnej strony SQLite i przewiń w dół do sekcji "Manifest Typing and BLOB Support". Mówi o tym, w jaki sposób pozwoli ci przechowywać łańcuchy w kolumnach innych typów.
0 dla odpowiedzi nr 2
Po prostu użyj Int tutaj. Ponieważ SQlite używa 8 bajtów dla int, maksymalne wartości to 2 ^ 64, czyli 1,8446744e + 19 - 1, mniej więcej 10 ^ 18, wystarczająco duże dla waluty.
Również my