iOS 浮点数精度丢失

后台返回的浮点类型的数据为 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类型 就不会出现精度问题了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。