我正在尝试将字符串转换为double值,以将其用作注释中的坐标。
我需要double值才能在地图上放置5个小数位。
我们说字符串是hello
,我需要的是whatsup
。
字符串的格式正是我想要的方式,我想让它成为一个双,所以我使用字符串的doublevalue属性。
NSString *hello = @"12.61655";
double whatsup = hello.doubleValue;
NSLog(@"%f",whatsup); //this gives 12.616550 WITH A ZERO in the end
NSLog(@"%.5f",whatsup); //This gives me the correct value of 12.61655 with only 5 decimal places
所以现在如果我想写:
coordinate.latitude = whatsup
它给出了额外零的双倍。
我该怎么写
coordinate.latitude = SOMETHING HERE
这是双精度,只有5位小数? 我能以某种方式实现“%.5f”吗?
尝试了数字格式,但它给了我一个NSnumber。我需要一个双倍的:
我在for循环中使用此代码来绘制注释(引脚)。
当我使用与双打相同的forloop我硬编码它工作正常。但是,当我使用此代码从csv文件中获取值时,我没有得到任何引脚:
double latitudeFromCSV = [[components objectAtIndex:0] doubleValue];
double longitudeFromCSV = [[components objectAtIndex:1] doubleValue];
CLLocationCoordinate2D annotationCoord;
annotationCoord.latitude = latitudeFromCSV;
annotationCoord.longitude = longitudeFromCSV;
答案 0 :(得分:1)
查看NSString方法-stringWithFormat:
但为了使它变好,你需要删除前导零,因为你不知道没有像@“12.50000”这样的值。
NSNumberFormatter * nf = [[NSNumberFormatter new] autorelease];
nf.maximumFractionDigits = 5;
NSLog(@"%@", [nf stringFromNumber:[NSNumber numberWithFloat:@"12.61655f".doubleValue]]);
应该将12.61655
作为输出字符串。