我有一个对象数组,每个对象都有一个NSDecimalNumber,称之为“size”
对于数组中的每个对象,我将减去推荐的大小,称为rSize。
然后我想进入结果NSDecimalNumber并得到delta的值,不关心它是正面还是负面结果。
我想我将使用decimalNumber方法返回一个NSDecimal结构,所以问题是:struct中的哪个属性会给我delta的值?
要改写:NSDecimal表示NSDecimalNumber,但NSDecimal结构的哪个属性保存值?
非常感谢 罗布
答案 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:
选择器对对象数组进行排序。