问题描述
在解析的时候遇到了当有两位小数字符串时, 会出现小数点后面突然多出了很多位小数. 比如后台返回数据 为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];
}
网友评论