IOS 处理后台返回字符串精度丢失的问题

我们做网络获取的时候,一般后台会返回给我们json格式的文件,我们获取到的信息也是字符串,但是返回的字符串分明是1.459999999,而在谷歌浏览器测试的时候返回的却是1.46,这个问题百思不得其解,经过查阅资料发现这个精度丢失的问题,在后台返回float或者double或者NSString类型时,利用NSDecimalNumber处理精度丢失问题,但是NSNumber的description方法不够严谨,在调用NSNumber的description方法打印数值时,会发生精度损失。如果是double类型,建议把NSNumber转换成double再进行输出或计算。

+(NSString *)reviseString: (NSString *)str

{

//直接传入精度丢失有问题的Double类型

double conversionValue = [str doubleValue];

NSString *doubleString = [NSString stringWithFormat:@"%lf", conversionValue];

NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];

return [decNumber stringValue];

}

你可能感兴趣的:(IOS 处理后台返回字符串精度丢失的问题)