您好,登錄后才能下訂單哦!
最近一個IOS項目中需要用到很多小數計算,對精度要求很高。我們都知道,對計算機而言Float,Double這類浮點數因為都是以科學計數法方式存儲,所以都存在著計算上的誤差,所以不能直接對它們進行相關計算。
在每種語言中都有相應的高精度計算方式,如Java中得BigDecimal類,C#中的decimal類型都是用來解決高精度計算問題的,如貨幣計算。
在對蘋果給出的API進行查看后,發現了一個類-----NSDecimalNumber
下面我們就來看看它里面我們需要的方法定義:
- decimalNumberByAdding:
- decimalNumberBySubtracting:
- decimalNumberByMultiplyingBy:
- decimalNumberByDividingBy:
以上4個方法分別代表著我們四則運算中得加減乘除。
這樣應該很好理解如何進行我們的高精度計算了,以下為我寫的用于理解的例子,addendValue和augendValue為NSString類型,可以將需要運算的數字轉化成相應位數的NSString類型后進行高精度計算:
NSDecimalNumber *addendNumber = [NSDecimalNumber decimalNumberWithString:addendValue]; NSDecimalNumber *augendNumber = [NSDecimalNumber decimalNumberWithString:augendValue]; NSDecimalNumber *sumNumber = [addendNumber decimalNumberByAdding:augendNumber];
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。