0

文字列をdouble値に変換して、注釈の座標として使用しようとしています。

マップ上に小数点以下5桁を配置するには、double値が必要です。

hello文字列がで、必要なdoubleがであるとしましょうwhatsup

文字列の形式は私が望むとおりであり、それをdoubleにしたいので、文字列の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桁のdoubleはどれですか?
どういうわけかここに「%.5f」を実装できますか?

numberformatterを試しましたが、NSnumberが表示されます。ダブルが必要です:

このコードをforループで使用して、注釈(ピン)をプロットしています。

同じforloopをdoubleで使用すると、ハードコードで正常に動作します。しかし、このコードを使用してcsvファイルから値を取得すると、ピンが取得されません。

double latitudeFromCSV = [[components objectAtIndex:0] doubleValue];
double longitudeFromCSV = [[components objectAtIndex:1] doubleValue];
CLLocationCoordinate2D annotationCoord;
annotationCoord.latitude = latitudeFromCSV;
annotationCoord.longitude = longitudeFromCSV;
4

1 に答える 1

1

NSString メソッド-stringWithFormatを確認してください。

しかし、@"12.50000" のような値がないことを知ることができないため、先頭のゼロを削除する必要があります。


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

12.61655出力文字列として提供する必要があります。

于 2012-09-11T00:10:12.520 に答える