json数据解析出现精确度问题,小数点后面有很多个9

开发中处理处理数字、价格金额等问题时, 后台经常返回float类型, 打印或转成NSString都会有精度丢失问题, 因此使用系统自带的NSDecimalNumber做处理, 能解决这问题:

下面是后台请求拿到的数据:

tianheCardDic =     {
        discount = "9.949999999999999"; //明明是9.95
        "oc_discount_rate" = 95;
        "oc_discount_rate_format" = "9.5";
        "th_price" = "189.05";
    };

方法处理 :

    NSString *doubleString = [NSString stringWithFormat:@"%.2lf", [tianheCardDic[@"discount"] doubleValue]];
    NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];
    NSLog(@"%@", [decNumber stringValue]);

打印结果:
9.95

猜你喜欢

转载自blog.csdn.net/sun_cui_hua/article/details/79196174