プロジェクトで SBJSON を使用しており、辞書から json 文字列を作成しようとしています。
ここで何が起こっているのか、私はフロートを NSNumbers として辞書に入れています:
NSDictionary* tempdic = [[NSDictionary alloc] init];
tempdic = [NSDictionary dictionaryWithObjectsAndKeys:productId, @"productId", [NSNumber numberWithFloat:quantity], @"aantal", price, @"price" , nil];
[orders addObject:tempdic];
NSDictionary* json = [NSDictionary dictionaryWithObjectsAndKeys: orders, @"order", message, @"message", [NSNumber numberWithFloat:orderprice], @"totalPrice",dueDate,@"dueDate", nil];
そして、最終的にjson文字列として記述するために、これら3つを試しました。
1)
NSData* jsonData = [writer dataWithObject:json];
NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
2)
NSString* jsonString = [json JSONRepresentation];
3)
NSString* jsonString = [writer stringWithObject:json];
これらはそれぞれ、0.95 を 0.95000000000000034355 に変更したり、さらに悪いことに 0.949999999999999992344 に変更したりします。
なぜこうなった?どうすればこれを防ぐことができますか? ありがとう