后台返回float类型数据8.2,实际用AFN的json解析后得到8.1999999999怎么回事?该怎么处理啊?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
返回的不是字符串吗? id = 2747 才是基本数据类型,后台的锅,直接让后台处理
用NSNumber接受尝试一下?然后,有时候类型转换确实出错,再然后,可以再浏览器上尝试一下。
谢谢各位,已经找到解决办法了,在后台返回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类型
返回的不是字符串吗? id = 2747 才是基本数据类型,后台的锅,直接让后台处理
用NSNumber接受尝试一下?然后,有时候类型转换确实出错,再然后,可以再浏览器上尝试一下。
谢谢各位,已经找到解决办法了,在后台返回float或者double类型时,利用NSDecimalNumber处理精度丢失问题。
此处我是以string方式接收的,直接添加NSString的分类,修正方法贴出来如下:
+(NSString )reviseString:(NSString )string{
}
这样返回的就是修正过精度的数据了,因为个人需要所以转成了string类型