2016-08-01 15 views
1

我從後臺獲取數據轉換一個JSON字符串後iOS版 - 十進制值變成JSON對象

NSString * jsonStr = data[@"result"]; 
    NSData * jsonData = [jsonStr dataUsingEncoding:NSUTF8StringEncoding]; 
    NSDictionary * dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil]; 

這是JsonStr:

{"id":2,"name":"輪胎式起重機","brand":"中聯","type":"QY130","weight":130.0,"isValid":"1","ext1":65.9,"ext2":34.6,"ext3":100.6,"ext4":75.0,"ext5":65805.0,"createTime":"2016-07-20 10:58:09"} 

在JsonStr價值爲@「EXT1 「是65.9,但之後的JSONObject價值成爲1965 0.90000000000001'

這是DIC:

{ 
brand = "\U4e2d\U8054"; 
createTime = "2016-07-20 10:58:09"; 
ext1 = "65.90000000000001"; 
ext2 = "34.6"; 
ext3 = "100.6"; 
ext4 = 75; 
ext5 = 65805; 
id = 2; 
isValid = 1; 
name = "\U8f6e\U80ce\U5f0f\U8d77\U91cd\U673a"; 
type = QY130; 
weight = 130; 

}

這個數據有什麼問題?

回答

0

當您使用ext1爲的NSNumber:

NSNumber *ext1 = @([dic[@"ext1"] floatValue]); 
NSLog(@"%@", ext1); 

這將是65.9。

的NSString:

NSString *ext1Str = [NSString stringWithFormat:@"%@",ext1]; 
NSLog(@"%@", ext1Str); 

2016-08-01 13:19:46.969 OCDemo[2200:78063] 65.9 2016-08-01 13:19:46.970 OCDemo[2200:78063] 65.9

+0

我使用'ext1'爲TextField文本'mainLengthText.text = [NSString的stringWithFormat:@ 「%@」,DIC [@ 「EXT1」]]' – Cheng

+0

@Cheng'NSString * ext1 = [NSString stringWithFormat:@「%@」,@([dic [@「ext1」] floatValue])];' – Catoshi

+0

謝謝,它可以顯示正確的值,但是什麼導致了dic值65 0.900000000001? – Cheng