如何保存NSDecimalNumber以外的货币?

如何保存NSDecimalNumber以外的货币?

问题描述:

我正在使用iOS的Realm.io数据库。我正在创建一个RLMObject,它仅支持NSInteger, CGFloat, int, long, float, and double,但不支持NSDecimalNumber。我想过使用double,但看到它有舍入误差,小于float,但它仍然有它们。什么是储存货币的最佳途径?如何保存NSDecimalNumber以外的货币?

+1

你可以随时使用字符格式。我从来不知道DB不支持字符格式。否则,您可以将美元金额作为整数乘以100来存储,或者使用适当的舍入算法仔细包围浮点数/双数。 – 2014-10-12 00:44:21

+0

用于将货币存储为整数乘以100.这将允许您执行存储字符串不会提供的数值比较查询。 – jpsim 2014-10-13 20:49:32

+0

@Sirens我刚刚接受了它,但我现在可能会选择上面提到的整数方法,因为它可以允许在查询中使用数学运算 – 2016-08-18 13:51:23

您的选择之一是使用NSString进行存储。你需要做的基本轮廓是:

  1. NSDecimalNumber
  2. 商店它获取字符串“14.10”的境界

当你想要得到它回来,你会拉对象,所以你有你的字符串了,然后你需要运行+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numericString这会导致你回到你的价值

+0

但是,您无法将这个值即时地加总......糟糕的解决方案。 – 2016-08-24 18:20:09