iOS——NSDecimalNumber的使用

2020-12-27 小趙學編程

NSDecimalNumber一種對象,用於表示和執行以10為基數的算術。2. 類---NSDecimalNumber 一種對象,用於表示和執行以10為基數的算術。

3.NSDecimalNumber繼承NSNumber

4. NSDecimalNumber是NSNumber的一個不可變子類,它提供了一個面向對象的包裝器,用於進行基於10的算術。一個實例可以表示任何可以表示為尾數x10 ^指數的數,其中尾數是一個長到38位的十進位整數,指數是一個從-128到127的整數。

NSDecimalNumber* number = [NSDecimalNumber decimalNumberWithString:@"20"];//創建並返回一個十進位數,其值等效於給定數字字符串中的值。----

NSLog(@"%@",number);//---20

NSLog(@"%@",NSDecimalNumber.one);//與數字1.0等價的十進位數。------1

NSLog(@"%@",NSDecimalNumber.zero);//一種十進位數,相當於數字0.0。---0

NSLog(@"%@",NSDecimalNumber.notANumber);//沒有指定數字的十進位數。----nan

NSDecimalNumber* number1 = [NSDecimalNumber decimalNumberWithString:@"201"];

//算術計算

NSDecimalNumber* number2= [number decimalNumberByAdding:number1];//將這個數字與另一個給定的數字相加。

NSLog(@"%@",number2);//---221

NSDecimalNumber* number3= [number1 decimalNumberBySubtracting:number];//一個數字減去另一個數字

NSLog(@"%@",number3);//181

NSDecimalNumber* number4= [number1 decimalNumberByMultiplyingBy:number];//將這個數乘以另一個給定的數。

NSLog(@"%@",number4);// 4020

NSDecimalNumber* number5= [number1 decimalNumberByDividingBy:number];//把這個數除以另一個給定的數。

NSLog(@"%@",number5);//10.05

NSDecimalNumber* number6= [number decimalNumberByRaisingToPower:2];//數字提高到給定的冪。

NSLog(@"%@",number6);//400

NSDecimalNumber* number7= [number decimalNumberByMultiplyingByPowerOf10:2];//乘以10的給定次方。

NSLog(@"%@",number7);//2000

//NSDecimalNumberHandler--一種協議,它聲明了三種方法,控制處理十進位數的任意方面。scale和roundingMode方法決定了NSDecimalNumber返回值的精度,以及這些值應該如何四捨五入以適應該精度。方法確定了NSDecimalNumber對象處理不同計算錯誤的方式。

// roundUp屬性使所有的操作算到最近的位置,其他的進位選項是NSRoundPlain, NSRoundDown, 和 NSRoundBankers,它們都被定義在NSRoundingMode,scale參數定義了結果值保留的小數位的數量,其餘的參數給所有的操作定義了異常處理行為.

//scale四捨五入,捨入位數

//roundingMode 返回NSDecimalNumber的decimalNumberBy…方法將返回值四捨五入。必需的。

NSDecimalNumberHandler *roundUp = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:YES];

NSDecimalNumber* number8= [number decimalNumberByAdding:number1 withBehavior:roundUp];//使用指定的行為將此數字添加到另一個給定的數字。

NSLog(@"%@",number8);//221

NSDecimalNumber* number9= [number1 decimalNumberBySubtracting:number withBehavior:roundUp];//用指定的行為將這個數字減去這個數字。

NSLog(@"%@",number9);//181

NSDecimalNumber* number10= [number1 decimalNumberByMultiplyingBy:number withBehavior:roundUp];//使用指定的行為將此數字乘以另一個給定的數字。

NSLog(@"%@",number10);//4020

NSDecimalNumber* number11= [number1 decimalNumberByDividingBy:number withBehavior:roundUp];//使用指定的行為將此數字除以另一個給定的數字。

NSLog(@"%@",number11);///10.05

NSDecimalNumber* number12= [number1 decimalNumberByRaisingToPower:2 withBehavior:roundUp];//使用指定的行為將數字提高到給定的冪。

NSLog(@"%@",number12);///10.05

NSDecimalNumber* number13= [number1 decimalNumberByMultiplyingByPowerOf10:2 withBehavior:roundUp];//使用指定的行為乘以10的給定次方。

NSLog(@"%@",number13);///2000

NSDecimalNumber* number14= [number1 decimalNumberByRoundingAccordingToBehavior:roundUp];//使用指定的捨入行為返回小數的四捨五入版本。

NSLog(@"%@",number14);///201

NSDecimalNumber* number15= [number1 decimalNumberByRoundingAccordingToBehavior:NSDecimalNumber.defaultBehavior];//算術方法四捨五入並處理錯誤條件的方法。

NSLog(@"%@",number15);///201

//,[number15 decimalValue]十進位數的值,表示為NSDecimal結構。

NSLog(@"%f",[number15 doubleValue]);//小數的最接近的近似雙值。--201.000000

NSDecimalNumber* number16= [roundUp exceptionDuringOperation:@selector(did) error:NSCalculationNoError leftOperand:number1 rightOperand:number];//指定一個NSDecimalNumber對象在遇到錯誤時將做什麼。

NSLog(@"%@",number16);///201

NSLog(@"%ld", (long)[number1 compare:number]);//比較這個小數和另一個小數。--1

NSLog(@"%@",[number15 descriptionWithLocale:[NSLocale systemLocale] ]);//201--返回適合於指定區域設置的小數的字符串表示形式。 --參數為NSLocale的實例或具有與NSLocaleDecimalSeparator鍵對應的字符串值的字典。

NSLog(@"%s",number16.objCType);//包含Objective-C類型的C字符串,用於十進位數對象中包含的數據。

NSLog(@"%@",[NSDecimalNumber maximumDecimalNumber]);//返回小數的最大可能值。

NSLog(@"%@",[NSDecimalNumber minimumDecimalNumber]);///返回小數的最小可能值。

相關焦點

  • a number of 和 the number of 都是怎麼使用的?
    但是偏偏這兩個短語,遇到了就開始卡抓耳撓腮,它們到底是怎麼使用的?可以互相替換嗎?閱讀中見到都分別是如何翻譯的?先說a number of:之所以很多人都始終弄不清楚,最主要的原因就是本能的受到了number一詞其本義的影響,在這個短語中,number並不是「數字」的意思,我們應該把a number of當成一個完整的整體來看待,相當於「many許多」。
  • 蘋果ios14畫中畫怎麼開啟使用 ios14畫中畫設置教程
    蘋果ios14畫中畫怎麼開啟使用 ios14畫中畫設置教程  ios14畫中畫功能在哪裡設置?蘋果系統升級之後,會有一個畫中畫系統,畫中畫的使用方法很多人都不清楚,對於畫中畫的功能作用和設置方法,小編在下面準備了詳細的教程,能幫助蘋果用戶快速熟悉畫中畫功能。
  • ios12 measure工具怎麼用:新手必看使用方法測量大小教程
    有啥用相信有不少的吃瓜群眾都很想搞清楚ios12 measure工具怎麼用,畢竟這個可是關係到咱們的「ios12 measure」使用方法教程,因此下面就來為各位講解一下,希望讓你們知道measure如何測量大小。蘋果在ios12系統中,新增了一個AR測量應用measure。ios12 measure怎麼用?
  • ios12 measure怎麼用 AR測量measure應用使用介紹
    ios12 measure怎麼用?measure應用有什麼用?measure應用暫時只在ios12系統中上線,蘋果商店暫時還沒有measure應用。ios12 measure應用使用攻略:點擊打開measure應用,可以設置需要測量的物品,設置一個起點,和重點。可獲得測量物品的大小。這就是所謂的AR測量工具。measure應用是蘋果推出的一個新應用,應用了AR技術。
  • a number of/the number of,相煎何急?
    倒計時 3 2 1……There______a great number of students over there. The number of them______fivethousand.完整解析過程如下:首先結合選項和題幹可知:本題考點是一套組合拳,即a number of與the number of 辨析+主謂一致。
  • 辨析 the number of,a number of
    今天給大家分享一組短語the number of, a number of的用法,希望對大家的英語學習有所幫助!快跟著我學起來吧!Come on, you can make it!考點辨析 the number of ,a number of(1) the number of意為「……的數量」,後面接可數名詞的複數形式。
  • 蘋果ios11的airdrop在哪裡?iPhone新系統使用隔空投送方法
    只不過,iPhone是無法使用藍牙傳輸文件的,所以才有了airdrop。一般我們使用airdrop,是用於兩臺iPhone設備之間傳輸文件。該功能的好處是不需要使用網絡和流量,可以在離線狀態下進行。不過在如今這種網絡如此發達的社會,我們使用airdrop的頻率的確也是挺低的,但是偶爾還是會有這個需求。
  • 辨析 the number of 和 a number of
    很多同學在遇到描寫數量是會用到Number相關的短語,很多同學區分不清a number of ,the number
  • 高考英語易混淆詞對比:a number of, the number of
    高考英語易混淆詞對比:a number of, the number of 2012-10-18 23:56 來源:滬江英語 作者:
  • 英語a number of 與 the number of 的區別
    英語短語 a number of 和 the number of 都與數量有關,但它們的用法並不相同,今天我們一起學習一下。1. a number of : 意思是「許多;一些」,後跟名詞複數形式。當作主語時,謂語動詞用複數。
  • 教你如何在ios應用掉籤後打開應用正常使用可使用茄子芭樂視頻等
    按照以下步驟操作即可使用ios端已經掉籤的應用,此方法必須保留原已掉籤的應用,若應用已掉籤後刪除了從新在下載掉籤的應用是不可行的。(註:以下圖片即為掉籤狀態)在打開應用後立刻關閉飛行模式聯網即可恢復正常使用。目前測試可能會在重啟後失效,儘量避免重啟哦~親測以上方法可針對任何出現第一步圖片情況的ios端掉籤情況,千萬記得在掉籤後不要急著刪除,若刪除後從新安裝的是黑色圖標是無法使用以上步驟的!!!
  • a number of 和the number of 用法與區別
    ①number of +名詞複數  =a lot of =los of+名詞複數  ②a number of…表示「一些,若干」(= some),後接可數名詞複數或代詞,謂語動詞用複數形式。 還可以加入形容詞表示數量大或小等(例如:a large/small number of…許多/少數……)。
  • 中考英語 -- a number of 與 the number of 辨析
    the number of the number of 表示「...的數量」後面加可數名詞複數,但是因為中心詞是「數量」,也就是說我們的主語是「the number」,所以後面的謂語動詞要用三人稱單數形式
  • 騰訊孤島行動ios在哪玩?ios試玩體驗方法[多圖]
    孤島行動ios玩家可以玩嗎?騰訊的新遊已經曝光,很多玩家都在期待這款遊戲的上線,而大多數ios玩家則在但有,ios系統能玩嗎?針對ios用戶,其實也是有方法可以玩的,由於目前遊戲暫未上線,不過對ios用戶試玩體驗的方法小編已經為大家準備好。
  • 中考考點 | a number of 和the number of的區別
    A number     B. The number     C. A great number    D. The biggest numbers of答案:B。解析:選the還是選a,只要看謂語動詞即可。本題謂語動詞是is,所有結構上要用the number of。
  • GMAT語法課堂 | 主謂一致10——thenumber of/ a number of/ numbers of修飾主語時
    the number of/ a number of/ numbers of後面通常都是接可數名詞的複數形式,其作主語時謂語動詞的單複數形式可分以下三種情形來討論:1. the number of:意思為「…的總數」,後接複數名詞,其作主語時謂語要用單數;2. a number of:意思為「許多、大量的」,後接複數名詞,修飾主語時謂語動詞使用複數
  • the number of 和 a number of:差之毫厘謬以千裡
    2. a number of、large numbers of 只可以修飾可數名詞複數形式,它修飾的詞作主語時謂語用複數形式。A number of trees have been cut down.不少書被砍掉了。
  • 英雄聯盟手遊ios安裝教程 lol手遊ios怎麼安裝
    英雄聯盟手遊終於迎來了大規模測試,這次測試加入了IOS版本,很多沒能參加測試的小夥伴也都非常激動,安卓用戶可以直接在谷歌商店進行預約下載,但是IOS的玩家由於國內蘋果商店並沒有上架,所以無法下載,為了能夠讓更多的玩家體驗到英雄聯盟手遊,下面由我遊小編為大家介紹一下英雄聯盟手遊ios安裝教程。
  • ios越獄已成過去式,ios籤名將迎來新轉機
    ios越獄已成過去式,ios籤名將迎來新轉機 作為一個ios系統的資深玩家,能夠通過越獄的方式對自己的機器自由定製是無可厚非的,相信必然也有一定的防禦手段去避免被惡意程序攻擊。但這畢竟是非常小的一部分人,對於絕大部分的人來說,本身就缺乏對程序的編寫以及必要的安全意識,越獄的事情幾乎是不可能的。
  • ios破解遊戲助手
    ios破解遊戲助手哪個好?今天18183小編就給大家推薦一款破解遊戲盒子:ios破解遊戲助手。ios破解遊戲助手包含好玩的ios破解遊戲、修仙、修真、角色扮演、模擬經營等各種類型破解手機遊戲!喜歡破解遊戲的玩家趕緊來下載吧!