在我的应用程序中,我的服务器上有一个位置的经度和纬度。当我从服务器检索lat和lon时,我将它们保存在字符串上。 问题是我不能在GMSCamerPosition中使用字符串:
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:latit
longitude:longt
zoom:10];
所以我需要转换它们。
我试图将它们转换为整数,但这无济于事。此外,我试图将它们转换为float / double,但这也没有帮助,因为它只接受数字和6位数。 例如 如果这是纬度的字符串= 25.8837788378837
将其转换为float / double会产生25.883778
我在这里检索数据
NSURL *ur = [NSURL URLWithString:[NSString stringWithFormat:@"......"]];
NSData *data = [NSData dataWithContentsOfURL:ur];
json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
for(int i=0; i<json.count; i++)
{
Lng = [[json objectAtIndex:i] objectForKey:@"Lng"];
Lat = [[json objectAtIndex:i] objectForKey:@"Lat"];
}
Lng和Lat是我的字符串。
Lat = 25.431609385185958
Lng = 49.583187103271484
在我的情况下。
我在这里使用它们
- (void)viewDidLoad
{
double latit = [lat doubleValue];
double longt = [lon doubleValue];
NSLog(@"%f",latit);
[super viewDidLoad];
// Do any additional setup after loading the view.
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:latit
longitude:longt
zoom:10];
双倍也无法做到。我只得到这个= 25.431609。
我知道我必须将NSLog更改为%。13f才能打印出来。但我不想打印它我想在GMSCameraPosition中使用变量。
答案 0 :(得分:1)
一切正常,因为rmaddy说你不打印所有数字。试试这个:
NSString *lat = @"25.8837788378837";
double doubleLat = [lat doubleValue];
NSLog(@"%.13f",doubleLat);
答案 1 :(得分:0)
NSString *lat = @"25.8837788378837";
NSLog(@"%.13f", [lat doubleValue]);