美文网首页iOS开发宝典
iOS - JSON解析数据精度丢失处理

iOS - JSON解析数据精度丢失处理

作者: 子疯zp | 来源:发表于2017-03-29 17:59 被阅读78次
    jd.png

    个人CSDN

    **开发中处理数字、价格金额等问题时, 后台经常返回float类型, 打印或转成NSString都会有精度丢失问题, 因此会用到系统自带的NSDecimalNumber做处理。 **
    经过测试其实系统NSDecimalNumber是对有问题值做了四舍五入。

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

          {
                "cal_date" = "2016-08-04";
                fee = 0;
                "fund_code" = 020007;
                "min_subscript" = 100;
                nav = "2.654";
                "purchase_status" = 1;
                "rate_growth" = "0.7665999999999999"; //此处数据有问题,后台给的是0.7666
                "redemp_status" = 1;
                risklevel = 0;
           },
    

    处理方法 :

    float testDouble = [listModel.rate_growth floatValue];
    NSString *doubleString = [NSString stringWithFormat:@"%lf", testDouble];
    NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];
    NSLog(@"%@", [decNumber stringValue]);
    

    打印结果:0.7666

    数据显示先后对比:

    处理前.png
    处理后.png

    强烈建议 :

    有关浮点型数据,后台传字符串的格式,防止丢失精!

    相关文章

      网友评论

        本文标题:iOS - JSON解析数据精度丢失处理

        本文链接:https://www.haomeiwen.com/subject/nqlyottx.html