溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS: Objective-C高精度計算

發(fā)布時間:2020-07-19 06:05:03 來源:網(wǎng)絡 閱讀:2148 作者:winljj 欄目:移動開發(fā)

        最近一個IOS項目中需要用到很多小數(shù)計算,對精度要求很高。我們都知道,對計算機而言Float,Double這類浮點數(shù)因為都是以科學計數(shù)法方式存儲,所以都存在著計算上的誤差,所以不能直接對它們進行相關計算。

        在每種語言中都有相應的高精度計算方式,如Java中得BigDecimal類,C#中的decimal類型都是用來解決高精度計算問題的,如貨幣計算。

         在對蘋果給出的API進行查看后,發(fā)現(xiàn)了一個類-----NSDecimalNumber


          下面我們就來看看它里面我們需要的方法定義:


            - decimalNumberByAdding:

            - decimalNumberBySubtracting:

            - decimalNumberByMultiplyingBy:

            - decimalNumberByDividingBy:

            

            以上4個方法分別代表著我們四則運算中得加減乘除。


            這樣應該很好理解如何進行我們的高精度計算了,以下為我寫的用于理解的例子,addendValue和augendValue為NSString類型,可以將需要運算的數(shù)字轉化成相應位數(shù)的NSString類型后進行高精度計算:

   

NSDecimalNumber *addendNumber = [NSDecimalNumber decimalNumberWithString:addendValue];    
NSDecimalNumber *augendNumber = [NSDecimalNumber decimalNumberWithString:augendValue]; 
NSDecimalNumber *sumNumber = [addendNumber decimalNumberByAdding:augendNumber];

           






向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI