NSDecimalNumber是NSNumber的子類正歼,比NSNumber的功能更為強(qiáng)大毡证,可以指定一個(gè)數(shù)的冪转砖,四舍五入等操作。由于NSDecimalNumber精度較高诞外,所以會(huì)比基本數(shù)據(jù)類型費(fèi)時(shí)澜沟,所以需要權(quán)衡考慮,蘋果官方建議在貨幣以及要求精度很高的場景下使用峡谊。
次方運(yùn)算
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithMantissa:12345 exponent:-2 isNegative:NO];
這會(huì)輸出 123.45
加減法
NSDecimalNumber*price1 = [NSDecimalNumber decimalNumberWithString:@"12.34"];
NSDecimalNumber*price2 = [NSDecimalNumber decimalNumberWithString:@"12.56"];
//相加
NSDecimalNumber *subTotal = [price1 decimalNumberByAdding:price2];
//相減
NSDecimalNumber *afterCoupon = [price1 decimalNumberBySubtracting: price2];
//相乘
NSDecimalNumber *afterDiscount = [price1 decimalNumberByMultiplyingBy: price2];