Я имею дело с большим количеством различных валют в моем приложении, и я хочу знать то, что "лучший" путь состоит в том, чтобы сохранить их в базе данных SQLite3.
Я склоняюсь к представлению фиксированной точки (т.е. сохраните их как целые числа, где 3,59$ хранятся как 359, 400¥, сохраненные как 40 000). Действительно ли это - хорошая идея? Что, если мои входные данные более поздние изменения и требует большей точности?
Учитывая, что SQLite 3 будет использовать до 8 байт для хранения типов INTEGER, если вы не собираетесь использовать числа больше 10^16, все будет в порядке.
Чтобы представить это в перспективе, мировой валовой внутренний продукт, выраженный в тысячных долях доллара США (миллион), составляет около 61'000'000'000'000'000, что sqlite3 без проблем может выразить.
sqlite> create table gdp (planet string, mills integer);
sqlite> insert into gdp (planet, mills) values ('earth', 61000000000000000000);
sqlite> select * from gdp;
earth|61000000000000000000
Если вы не занимаетесь межпланетной бухгалтерией, я не думаю, что вам стоит беспокоиться.
Я бы сказал строка/текст. Вы всегда можете преобразовать его в любую культуру, если вам это понадобится.