如何从NSDecimal获取NSDecimalNumber的值?

时间:2013-04-15 09:12:35

标签: ios nsdecimalnumber

我有一个对象数组,每个对象都有一个NSDecimalNumber,称之为“size”

对于数组中的每个对象,我将减去推荐的大小,称为rSize。

然后我想进入结果NSDecimalNumber并得到delta的值,不关心它是正面还是负面结果。

我想我将使用decimalNumber方法返回一个NSDecimal结构,所以问题是:struct中的哪个属性会给我delta的值?

要改写:NSDecimal表示NSDecimalNumber,但NSDecimal结构的哪个属性保存值?

非常感谢 罗布

1 个答案:

答案 0 :(得分:1)

您的“delta”似乎是“rSize”与项目之间差异的绝对值。在这种情况下,您可以执行减法(item – rSize),如果它在NSDecimalNumber内完全为负,则将其乘以-1:

NSDecimalNumber *negativeOne = [NSDecimalNumber decimalNumberWithMantissa:1 
                                                                 exponent:0
                                                               isNegative:YES];
NSDecimalNumber *delta = [item decimalNumberBySubtracting:rSize];
if ([delta compare:[NSDecimalNumber zero]] == NSOrderedAscending) {
    delta = [delta decimalNumberByMultiplyingBy:negativeOne];
}

然后在生成的delta对象上使用-compare:选择器对对象数组进行排序。