在项目中突然发现,原本应该返回两位小数的接口,返回的数据突然出现了小数点后很多9999的现象,打印接口返回的数据,发现接口返回的结果亦是如此,当时心想着肯定是后台的锅,不料安卓和postman调接口,全是返回的2位小数。网上查阅了资料,经查询发现苹果的json解析会莫名的丢失精度。
有下方的方法可以完美的解决这个问题
对NSString类新增方法
+(NSString *)reviseString:(NSString *)string{
//直接传入精度丢失有问题的Double类型
double conversionValue = [string doubleValue];
NSString *doubleString = [NSString stringWithFormat:@"%lf", conversionValue];
NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];
return [decNumber stringValue];
}