我正在使用AFHTTPSessionManager拨打电话:

//HTTP GET
[self GET:path parameters:parameters success:^(NSURLSessionDataTask * task, id responseObject) {

    blockOnSuccess(self,responseObject);

} failure:^(NSURLSessionDataTask * task, NSError * error) {
    [self logFailure: error url: path];
    blockOnFailure(self,error);

}];


在Charles Proxy中查看的json responseObject具有以下值:

"sellingPrice": 9.95


来自AFHTTPSessionManager的响应(打印到控制台)具有以下值:

sellingPrice = "9.949999999999999";


我无法理解为什么它会更改数字和值类型。有人遇到过这个问题并有答案吗?

最佳答案

打印功能将数字转换为字符串并降低点精度。对不起,AFNetworking!

(lldb) print responseObject[@"variants"][0][@"sellingPrice"]


(__NSCFNumber *)$ 0 = 0x00006000024c9c60(双精度)9.95

(lldb) po responseObject[@"variants"][0][@"sellingPrice"]


9.949999999999999

关于ios - AFNetworking将json编号更改为不正确的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59673411/

10-09 21:03