我有一个Couchbase数据库,我想在不损失精度的情况下存储price - double对于我的应用程序来说真的不够好。但是,在Couchbase中似乎不支持货币数据类型。
对于这个数据库引擎,这个问题有没有更好的解决方案?
我在考虑将每个价格存储两次,一次作为字符串,一次作为双精度,这样我仍然可以查询价格的不等性。这总比什么都没有好,但这不是一个好的解决方案。
发布于 2018-05-23 21:27:29
这确实是JSON的一个问题,但由于Couchbase使用纯JSON,因此它适用:)
我见过的一种解决方案是将其存储为整数。
例如,如果你想存储一个$129.99的价格,你应该存储一个12999的数字。这可能有点烦人,但根据您使用的语言/框架,定制(反)序列化程序来自动处理可能会相对容易一些。或者,您可以在您的类中创建一个计算属性(假设您使用的是OOP)。或者你可以使用AOP。
但在任何情况下,你的精确度都是存储的。您的字符串解决方案也可以工作,但有类似的注意事项。
https://stackoverflow.com/questions/50489539
复制相似问题