在SQLite3中存储货币值

nor*_*gon 13 sqlite currency

我在我的应用程序中处理了许多不同的货币,我想知道将它们存储在SQLite3数据库中的"最佳"方法是什么.

我倾向于定点表示(即将它们存储为整数,其中$ 3.59存储为359,¥400存储为40000).这是一个好主意吗?如果我的输入数据后来改变并需要更高的精度怎么办?

msw*_*msw 23

鉴于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
Run Code Online (Sandbox Code Playgroud)

除非您正在处理星际会计,否则我认为您不必担心.

  • 好吧,为了完全准确,这并不能解决所有可能性:http://en.wikipedia.org/wiki/File%3AZimbabwe_%24100_trillion_2009_Obverse.jpg (12认同)