NSDecimalNumber使用小结

NSDecimalNumber使用小结

1. 小数点后多余0的处理

- (void)test1{
    /**
     *  要求:输出0.1
     */
    NSString * str = @"0.1000";
    NSDecimalNumber * result = [NSDecimalNumber decimalNumberWithString:str];
}

2. 小数点后n位处理

2.1四舍五入
- (void)test2{
  /**
   *  要求:a=0.127  b=0.13
   */
    NSDecimalNumberHandler * handler = [NSDecimalNumberHandler decimalNumberHandlerWithRoundingMode:NSRoundPlain scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
    NSDecimalNumber * a = [NSDecimalNumber decimalNumberWithString:@"0.127"];
    NSDecimalNumber * b = [a decimalNumberByRoundingAccordingToBehavior:handler];
    NSLog(@"%@,%@",a,b);
}

2.2截取

将RoundMode改为NSRoundDown。

3.非空判断

- (void)test4{
    NSString * str = nil;
    NSDecimalNumber * n = [NSDecimalNumber decimalNumberWithString:str];
    NSDecimalNumber * nan = [NSDecimalNumber notANumber];
    if (n == nan) {
        NSLog(@"数据为空:NaN");
    }
}

当服务器返回的NSNumber类型的数据为空时,可通过上述方法进行判断。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容