ios 在json解析过程中浮点型字符串出现精度丢失问题

问题描述

在解析的时候遇到了当有两位小数字符串时, 会出现小数点后面突然多出了很多位小数. 比如后台返回数据 为9.88,解析过后却变成了9.880000000000001或者9.799999999999999 ,这是因为浮点型字符串在解析过程中出现精度丢失.

解决办法

对解析过后的浮点字符串进行修正, 修正方法如下

//进行小数修正, ios在Json解析中有时会出现类似小数溢出的问题, 可用此方法进行修正, 例如正常小数位9.88, 解析时却出现9.88000000001这样的情况, 可用此方法进行修正
-(NSString *)reSolveDecimalsString
{
    //直接传入精度丢失有问题的Double类型
    double conversionValue = [self doubleValue];
    NSString *doubleString = [NSString stringWithFormat:@"%lf", conversionValue];
    NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];
    return [decNumber stringValue];
}

你可能感兴趣的:(ios 在json解析过程中浮点型字符串出现精度丢失问题)