3

文字列にputlocationsを使用するコードは次のとおりです。

public static String locationStringFromLocation(final Location location) {
    return String.format("%.3f %.3f", location.getLatitude(), location.getLongitude());
}

そして、他のいくつかのデバイスから、時々、私は次のようになります: たとえば-7.2900002123788E-4 7.270000060088933E-4、場所の文字列としてではありません-7.290 7.270

  • 誰かがこれについて手がかりを持っていますか?
  • コードを改善する方法は?

編集

更新されたコード。これで問題は解決しますか?

DecimalFormat decimalFormat = new DecimalFormat("#.###");
if (location != null) {
    final String latitude = decimalFormat.format(Float.valueOf(Location.convert(location.getLatitude(), Location.FORMAT_DEGREES)));
    final String longitude = decimalFormat.format(Float.valueOf(Location.convert(location.getLongitude(), Location.FORMAT_DEGREES)));
    return latitude + " " + longitude;
}
return decimalFormat.format(0.0F) + " " + decimalFormat.format(0.0F);
4

2 に答える 2

5

public static String convert (double coordinate, int outputType)ロケーションクラスから使用できます。outputTypeは、、、、FORMAT_DEGREESまたはFORMAT_MINUTESのいずれかになりFORMAT_SECONDSます。

public static String locationStringFromLocation(final Location location) {
    return Location.convert(location.getLatitude(), Location.FORMAT_DEGREES) + " " + Location.convert(location.getLongitude(), Location.FORMAT_DEGREES);
}
于 2012-12-11T10:38:06.057 に答える
0

1行、1つの方法、便利な回避策:

String.substring(beginIndex,finalIndex)

だからあなたの場合:

latInDecimal = lat.substring(0,5)
lngInDecimal = lng.substring(0,5)
于 2019-09-10T22:22:25.650 に答える