我有一个Couchbase数据库,我想存储price
而不会丢失精度 - 对于我的应用来说,double真的不够好。但是,似乎Couchbase中不支持货币数据类型。
此数据库引擎是否存在针对此问题的首选解决方案?
我正在考虑将每个价格存储两次,一次是字符串,一次是双,这样我仍然可以查询不等价格。它总比没有好,但不是一个很好的解决方案。
答案 0 :(得分:1)
这是JSON的一个问题,但由于Couchbase使用纯JSON,因此适用:)
我见过的一个解决方案是将其存储为整数。
例如,如果你想存储129.99美元的价格,你会存储12999的数字。这可能有点烦人,但根据你使用的语言/框架,它可能相对容易自定义您的(de)序列化程序以自动处理此问题。或者您可以在班级中创建计算属性(假设您正在使用OOP)。或者你可以使用AOP。
但无论如何,你的精确度都会被存储。您的字符串解决方案也可以使用,但也有类似的警告。