解決貨幣精度問題(NSDecimalNumber)

在項目中經常使用到貨幣的結算問題,但是貨幣的精度問題真的很讓人頭疼~~不論你是用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];```
![示例圖片](http://upload-images.jianshu.io/upload_images/1401151-a3db98c1acd7b3b6?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容