关于高精度数据精度丢失

2018-01-15  本文已影响0人  ZJ_偶尔上路
double money = 9.04;
    
    NSNumber *moneyNum = [NSNumber numberWithDouble:money];
    
    NSLog(@"moneyNum:%@",moneyNum); //此时输出9.039999999999999;
    
      //使用NSDecimalNumber
    
    moneyNum = [NSDecimalNumber decimalNumberWithString:[NSString stringWithFormat:@"%f",money]];
    
    NSLog(@"NSDecimalNumber:%@",moneyNum);  //此时输出9.04

使用系统提供的NSDecimalNumber来处理,可以避免精度丢失。

上一篇 下一篇

猜你喜欢

热点阅读