nsdecimalnumber应该如何存储在数据库中?

将nsdecimalnumbers存储在数据库中的最佳方式是什么?像float,real和double这样的数字类型已经不存在了,因为保留货币使用的精度非常重要。nsdecimalnumber应该如何存储在数据库中?

我所考虑的两种选择是字符串和存储两个整数,一个持有尾数,另一个持有指数。后一种方法面临的挑战是我没有看到一种简单的方法将nsdecimalnumber中的尾数和指数拉出来。我可以从NSDecimalNumber获取NSDecimal,但尾数和指数属性似乎是私有的!也许我可以反转数字=(尾数* 10 ^指数),但有没有更好的方法来做到这一点?

我的要求是,我需要在数据库中的该字段上执行一些汇总和操作。如果我将其作为字符串存储,则执行此计算可能会更困难。我仍然需要编写一个自定义函数来总结数据库中的尾数和指数,所以也许它仍然很重。

编辑:我可以访问指数,但尾数保持奇怪的方式...在调试器中戳它显示它是一个short(int)数组。

回答:

NSDecimalNumber符合NSCoding,所以你可以将它添加到你的数据库之前,encodeWithCoder:编码,然后从数据库中检索时,它使用initWithCoder:解码。

有关使用编码器的更多详细信息,请参阅Archives and Serializations Programming Guide,特别是“Encoding and Decoding Objects”。

以上是 nsdecimalnumber应该如何存储在数据库中? 的全部内容, 来源链接: utcz.com/qa/263604.html

回到顶部