关于高精度数据精度丢失

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来处理,可以避免精度丢失。

你可能感兴趣的:(关于高精度数据精度丢失)