后台返回的浮点类型的数据为 9.37,
但是在使用浮点显示的时候就会变成 9.369999999999999 这种样子的,
这就是精度丢失导致的,
比较好的办法就是 后台直接返回字符串 "9.37",
但是在项目已经完成的情况下出现这种情况, 那么就需要前端操作了
// double 转 string 处理精度问题
+ (NSString *)decimalNumberWithDouble:(double)conversionValue {
NSString *doubleString = [NSString stringWithFormat:@"%lf", conversionValue];
NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];
return [decNumber stringValue];
}
可以把上面的这个方法 设置为公用的, 将后台获取的浮点数转成string类型 就不会出现精度问题了
网友评论