これは通貨用であると言ったので、スケールに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
。整数が必要な場合は、このメソッドを使用してcents
10 の累乗を掛けることができます。
cents = [cents decimalNumberByMultiplyingByPowerOf10: 2];
cents
これにより、100が掛けられ、dollars
とで 10 と 5 が得られcents
ます。また、ここで 10 の負の累乗を使用して除算できることも知っておく必要があります。
そう、
cents = [cents decimalNumberByMultiplyingByPowerOf10: -2];
その最後の方法を元に戻します。