坐标的小数位数

时间:2012-09-10 23:52:04

标签: ios double coordinate double-precision

我正在尝试将字符串转换为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;

1 个答案:

答案 0 :(得分:1)

查看NSString方法-stringWithFormat:

但为了使它变好,你需要删除前导零,因为你不知道没有像@“12.50000”这样的值。


NSNumberFormatter * nf = [[NSNumberFormatter new] autorelease];
nf.maximumFractionDigits = 5;
NSLog(@"%@", [nf stringFromNumber:[NSNumber numberWithFloat:@"12.61655f".doubleValue]]);

应该将12.61655作为输出字符串。