搜尋

首頁  >  問答  >  主體

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

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

高洛峰高洛峰2771 天前1286

全部回覆(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
  • 取消回覆