Rumah > Soal Jawab > teks badan
后台返回float类型数据8.2,实际用AFN的json解析后得到8.1999999999怎么回事?该怎么处理啊?
迷茫2017-04-18 09:32:46
Bukankah rentetan yang dikembalikan ialah id = 2747 ialah jenis data asas Latar belakang bertanggungjawab untuk pemprosesan latar belakang
天蓬老师2017-04-18 09:32:46
Cuba gunakan NSNumber accept? Kemudian, kadangkala penukaran jenis menjadi salah, dan kemudian anda boleh mencubanya semula pada penyemak imbas.
PHP中文网2017-04-18 09:32:46
Terima kasih semua, saya telah menemui penyelesaian Apabila mengembalikan float atau double type di latar belakang, gunakan NSDecimalNumber untuk menangani masalah kehilangan ketepatan.
Di sini saya menerimanya dalam mod rentetan dan terus menambah klasifikasi NSString Kaedah pembetulan disiarkan seperti berikut:
+(NSString )reviseString:(NSString )rentetan{
/* 直接传入精度丢失有问题的Double类型*/
double conversionValue = (double)[string floatValue];
NSString *doubleString = [NSString stringWithFormat:@"%lf", conversionValue];
NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString];
return [decNumber stringValue];
}
Data yang dikembalikan dengan cara ini ialah data ketepatan yang diperbetulkan, kerana keperluan peribadi, ia ditukar kepada jenis rentetan