iOS 金融数字计算

iOS 金融数字计算

后台返回的金额数是字符串NSString,要对其进行计算的话,当时就转成CGFloat,结果发现转后的数值和字符串不一样了,多了很多位(不准确了),解决这个问题需要使用金融货币的API。

 

 

- (void)viewDidLoad {

    [super viewDidLoad];

 

    /*

    NSRoundPlain,   貌似取整

   

    NSRoundDown,    只舍不入

   

    NSRoundUp,      只入不舍

   

    NSRoundBankers  貌似四舍五入

    */

   

    /*

    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(@"大于");

       

    }

   

 

 

   

   

}

转载于:https://my.oschina.net/u/2472425/blog/718915

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值