iOS精确的数据计算NSDecimalNumber

NSDecimalNumber是NSNumber的子类,比NSNumber的功能更为强大,可以指定一个数的幂,四舍五入等操作。由于NSDecimalNumber精度较高,所以会比基本数据类型费时,所以需要权衡考虑,苹果官方建议在货币以及要求精度很高的场景下使用。

次方运算

NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithMantissa:12345 exponent:-2 isNegative:NO];

这会输出 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];

你可能感兴趣的:(iOS精确的数据计算NSDecimalNumber)