Ich Hole eine Breite und Länge von einem JSON-API. Diese Werte kommen als Strings.NSString zu CLLocationDegrees zu NSString ist Wert zu verändern
speichere ich den Wert in einem CLLocationDegrees
wie folgt aus:
CLLocationDegrees lat = [[coordinates objectForKey:@"lat"] doubleValue];
CLLocationDegrees lon = [[coordinates objectForKey:@"lat"] doubleValue];
Aber wenn ich die Werte aus lat
und lon
später abrufen und sie in einem NSString
hat sich der Wert geändert, was durch die JSON zur Verfügung gestellt wurde . Die Veränderung ist in der Regel nur die letzten Ziffern der Koordinate, aber es ist genug, um ein Problem zu verursachen.
NSString *latitude = [[NSNumber numberWithDouble:lat] stringValue];
NSString *longitude = [[NSNumber numberWithDouble:lon] stringValue];
Im Grunde an dieser Stelle ist zu [coordinates objectForKey:@"lat"]
latitude
nicht gleich.
Irgendwelche Tipps, wie Sie dieses Problem beheben würde
Ich hätte das im Originalbeitrag sagen sollen, aber es ist nicht so, dass ich die Präzision verliere ... die Ziffern sind gleich lang, ändern sich aber. Zum Beispiel ging man von '40.78399658203125' zu' 40.7839965820328' ... die 5 am Ende zu einem 8 geändert Ist dies immer noch ein Ergebnis der gleichen Formatierung Situation? – Chris
'double' ist auf etwa 15 signifikanten Stellen gut. Die Nummer '40.78399658203125' hat 16 signifikante Ziffern. Sie können also etwas Verlust erwarten. Und selbst wenn es aufgrund der Anzahl der Stellen keinen Verlust gibt, können Sie einen scheinbaren Verlust aufgrund der Unfähigkeit sehen, alle möglichen Werte in einem Fließkommatyp wie "double" darzustellen. – rmaddy