第一次使用NSDecimalNumber,所以我想知道我真的需要创建这么多对象吗?在我的方法中,我想计算每日成本中的每月费用。每月费用存储在self.sumPerMonth
中,参数costs
是每日费用值。所以我想添加每月费用30 * costs
。这是最简单的方法吗?
[self.sumPerMonth decimalNumberByAdding:[costs decimalNumberByMultiplyingBy:[NSDecimalNumber decimalNumberWithString:@"30"]]];
答案 0 :(得分:2)
NSDecimalNumber
是不可变的,所以是的,每次进行操作时都需要创建一个新对象。
处理对象的笨拙是您在不损失精度和可预测的舍入行为的情况下获得基础10计算的折衷方案。
Beware of mixing NSNumber
and NSDecimalNumber
一点阅读:http://rypress.com/tutorials/objective-c/data-types/nsdecimalnumber.html
答案 1 :(得分:1)
是的,这是使用NSDecimalNumber
的方式。
如果有正当理由关注创建的对象数量,您可以切换到普通NSDecimal
结构类型。区别在于NSDecimal
是可变的。