我正在使用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/