如何在不损失精度的情况下在Couchbase中存储价格?

时间:2018-05-23 13:21:04

标签: json couchbase currency

我有一个Couchbase数据库,我想存储price而不会丢失精度 - 对于我的应用来说,double真的不够好。但是,似乎Couchbase中不支持货币数据类型。

此数据库引擎是否存在针对此问题的首选解决方案?

我正在考虑将每个价格存储两次,一次是字符串,一次是双,这样我仍然可以查询不等价格。它总比没有好,但不是一个很好的解决方案。

1 个答案:

答案 0 :(得分:1)

这是JSON的一个问题,但由于Couchbase使用纯JSON,因此适用:)

我见过的一个解决方案是将其存储为整数。

例如,如果你想存储129.99美元的价格,你会存储12999的数字。这可能有点烦人,但根据你使用的语言/框架,它可能相对容易自定义您的(de)序列化程序以自动处理此问题。或者您可以在班级中创建计算属性(假设您正在使用OOP)。或者你可以使用AOP。

但无论如何,你的精确度都会被存储。您的字符串解决方案也可以使用,但也有类似的警告。