これは通貨用であると言ったので、スケールに2を使用していますが、別の丸めスケールを使用することを選択できます. これは非常に単純な例であるため、丸めによって発生する可能性のある例外も無視しています。
NSDecimalNumberHandler *behavior = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundDown scale:0 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
NSDecimalNumber *price = /* eg. 10.5 */;
NSDecimalNumber *dollars = [price decimalNumberByRoundingAccordingToBehavior: behavior];
NSDecimalNumber *cents = [price decimalNumberBySubtracting: dollars];
dollarsこれにより、変数と変数にそれぞれ 10 と 0.5 が与えられますcents。整数が必要な場合は、このメソッドを使用してcents10 の累乗を掛けることができます。
cents = [cents decimalNumberByMultiplyingByPowerOf10: 2];
centsこれにより、100が掛けられ、dollarsとで 10 と 5 が得られcentsます。また、ここで 10 の負の累乗を使用して除算できることも知っておく必要があります。
そう、
cents = [cents decimalNumberByMultiplyingByPowerOf10: -2];
その最後の方法を元に戻します。