У меня есть метод, чтобы вычислить разницу между двумя Широта:java.lang.NumberFormatException: Invalid двойной
public static double distanceKM(LatLng latLng1, LatLng latLng2) {
int EARTH_RADIUS_KM = 6371;
double lat1Rad = Math.toRadians(latLng1.latitude);
double lat2Rad = Math.toRadians(latLng2.latitude);
double deltaLonRad = Math.toRadians(latLng2.longitude - latLng1.longitude);
double dist_travelled = Math
.acos(Math.sin(lat1Rad) * Math.sin(lat2Rad) + Math.cos(lat1Rad)
* Math.cos(lat2Rad) * Math.cos(deltaLonRad))
* EARTH_RADIUS_KM;
dist_travelled = Double.parseDouble(new DecimalFormat("##.######")
.format(dist_travelled));
return dist_travelled;
}
Иногда этот метод бросить исключение (я говорю иногда, когда я испытываю в defference устройстве):
java.lang.NumberFormatException: Недопустимый дважды: "0,179927" в java.lang.StringToReal.invalidReal (StringToReal.java:63) в java.lang.StringToReal.parseDouble (StringToReal.java:269)
Может ли кто-нибудь помочь мне в этом случае? Спасибо
вашего dist_travelled значение содержит, (запятая) Проверьте dist_travelled правильно –
Но я форматировать dist_travelled (двойной с типом ##. ####),. не,, почему, когда я форматирую снова,. переключить на , ? –
вам не нужно конвертировать снова. но вам нужно проверить, почему dist_travelled дает, (запятая) –