2016-08-01 20 views
1

は私が私のバックグラウンドからデータを取得するJSONオブジェクトにJSON文字列を変換した後に変更がiOSの10進値

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

これはJsonStrです:

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"} 

値について@「EXT1 「65.9ですが、jsonobject後の値は、'65となっ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; 

}

このデータにはどのような問題がありますか?あなたがするNSNumberとしてext1を使用する場合

答えて

0

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

私は、TextFieldのテキストのための 'ext1'を使用し、' mainLengthText.text = [NSStringのstringWithFormat:DIC [ "EXT1" @ "%の@"、] @] ' – Cheng

+0

@Cheng NSString * ext1 = [NSString stringWithFormat:@ "%@"、@([dic [@ "ext1"] floatValue])]; ' – Catoshi

+0

ありがとう、それは正しい値を表示することができますが、 .900000000001? – Cheng