11

NSDecimalNumberを掛けてネガを回す方法を探してい-1ます。

/* decNumber is the one I would like to turn negative */
NSDecimalNumber *decNumber = [values objectAtIndex:billIndex];

NSDecimalNumber *minusOne = [[NSDecimalNumber alloc] initWithInt: -1];
finalValue = [[NSDecimalNumber alloc] initWithDecimal: [[decNumber decimalNumberByMultiplyingBy: minusOne] decimalValue]];

これは機能しますが、このような単純なロジックには多すぎるように感じます。これを達成するためのより良い方法を考えられますか?

4

3 に答える 3

17

NSDecimalNumber>>decimalNumberWithMantissa:exponent:isNegativeを使用して、-1 をより簡潔に生成できます。

/* Answers (aDecimal x -1) */
NSDecimalNumber* negate(NSDecimalNumber *aDecimal) {
    return [aDecimal decimalNumberByMultiplyingBy:
                    [NSDecimalNumber decimalNumberWithMantissa: 1
                                                      exponent: 0
                                                    isNegative: YES]];
}
于 2011-02-20T16:12:38.740 に答える