在項目中經常使用到貨幣的結算問題,但是貨幣的精度問題真的很讓人頭疼~~不論你是用float類型還是double類型在累加的時候好像總是精度不夠呢
- 這里我們就使用到了
NSDecimalNumber
貨幣類了,初始化對象
NSDecimalNumber *decimal = [[NSDecimalNumber alloc]initWithString:string];
- 價格的累加,
decimalNumberByAdding:
。貨幣累的累加并不能像其他的基本數據類型似的 +=或者 ++,這里的計算只能使用一個NSDecimalNumber類型的對象承接上一個對象的數據。
NSDecimalNumber *totalPrice = [self getDecimalPriceWithNum:@"0"];
//計算總價 確保精度
NSDecimalNumber *getPrice = [self getDecimalPriceWithNum:[NSString stringWithFormat:@"%@",price]];
defaultPrice = totalPrice;
totalPrice = [defaultPrice decimalNumberByAdding:getPrice];```
