解決貨幣精度問題(NSDecimalNumber)

在項(xiàng)目中經(jīng)常使用到貨幣的結(jié)算問題,但是貨幣的精度問題真的很讓人頭疼~~不論你是用float類型還是double類型在累加的時(shí)候好像總是精度不夠呢

  • 這里我們就使用到了NSDecimalNumber貨幣類了,初始化對象
    NSDecimalNumber *decimal = [[NSDecimalNumber alloc]initWithString:string];
  • 價(jià)格的累加,decimalNumberByAdding:。貨幣累的累加并不能像其他的基本數(shù)據(jù)類型似的 +=或者 ++,這里的計(jì)算只能使用一個(gè)NSDecimalNumber類型的對象承接上一個(gè)對象的數(shù)據(jù)。
    NSDecimalNumber *totalPrice = [self getDecimalPriceWithNum:@"0"];
//計(jì)算總價(jià) 確保精度
            NSDecimalNumber *getPrice = [self getDecimalPriceWithNum:[NSString stringWithFormat:@"%@",price]];
            defaultPrice = totalPrice;
            totalPrice = [defaultPrice decimalNumberByAdding:getPrice];```
![示例圖片](http://upload-images.jianshu.io/upload_images/1401151-a3db98c1acd7b3b6?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容