登录

ios - json 解析float类型多出几位小数怎么处理?

后台返回float类型数据8.2,实际用AFN的json解析后得到8.1999999999怎么回事?该怎么处理啊?

# iOS
高洛峰高洛峰2139 天前705 次浏览

全部回复(3) 我要回复

  • 迷茫

    迷茫2017-04-18 09:32:46

    返回的不是字符串吗? id = 2747 才是基本数据类型,后台的锅,直接让后台处理

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:32:46

    用NSNumber接受尝试一下?然后,有时候类型转换确实出错,再然后,可以再浏览器上尝试一下。

    回复
    0
  • PHP中文网

    PHP中文网2017-04-18 09:32:46

    谢谢各位,已经找到解决办法了,在后台返回float或者double类型时,利用NSDecimalNumber处理精度丢失问题。
    此处我是以string方式接收的,直接添加NSString的分类,修正方法贴出来如下:

    +(NSString )reviseString:(NSString )string{

    /* 直接传入精度丢失有问题的Double类型*/
    double conversionValue        = (double)[string floatValue];
    NSString *doubleString        = [NSString stringWithFormat:@"%lf", conversionValue];
    NSDecimalNumber *decNumber    = [NSDecimalNumber decimalNumberWithString:doubleString];
    return [decNumber stringValue];

    }

    这样返回的就是修正过精度的数据了,因为个人需要所以转成了string类型

    回复
    0
  • 取消回复发送