iOS 金融數字計算

iOS 金融數字計算ide

後臺返回的金額數是字符串NSString,要對其進行計算的話,當時就轉成CGFloat,結果發現轉後的數值和字符串不同了,多了不少位(不許確了),解決這個問題須要使用金融貨幣的API。ip

 

 

- (void)viewDidLoad {ci

    [super viewDidLoad];字符串

 

    /*it

    NSRoundPlain,   貌似取整io

   

    NSRoundDown,    只舍不入後臺

   

    NSRoundUp,      只入不捨im

   

    NSRoundBankers  貌似四捨五入di

    */view

   

    /*

    decimalNumberByAdding  +

    

    */

   

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

   

   

    NSDecimalNumber *one = [NSDecimalNumber decimalNumberWithString:@"90.7009"];

    NSDecimalNumber *two = [NSDecimalNumber decimalNumberWithString:@"0.22"];

   

   

    //1. one + two 不作任何處理

    NSDecimalNumber *result1 = [one decimalNumberByAdding:two];

   

    //2. one - two 不作任何處理

    NSDecimalNumber *result2 = [one decimalNumberBySubtracting:two];

   

    //3. one * two 不作任何處理

    NSDecimalNumber *result3 = [one decimalNumberByMultiplyingBy:two];

 

   

   

   

    //4. one + two 四捨五入

    NSDecimalNumber *result4 = [one decimalNumberByAdding:two withBehavior:roundUp];

 

   

   

    //比較大小

    NSDecimalNumber *discount1 = [NSDecimalNumber decimalNumberWithString:@".85"];

   

    NSDecimalNumber *discount2 = [NSDecimalNumber decimalNumberWithString:@".9"];

   

    NSComparisonResult result = [discount1 compare:discount2];

   

    if (result == NSOrderedAscending) {

       

        NSLog(@"小於");

       

    } else if (result == NSOrderedSame) {

       

        NSLog(@"等於");

       

    } else if (result == NSOrderedDescending) {

       

        NSLog(@"大於");

       

    }

   

 

 

   

   

}

相關文章
相關標籤/搜索