나는 두 위도 사이의 차이를 계산하는 방법이 있습니다java.lang.NumberFormatException의 : 잘못된 더블
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;
}
때때로,이 방법 던져 예외 (내가 한 차이가 장치에서 테스트 할 때 내가 가끔 말) :
java.lang.NumberFormatException의 : 잘못된 이중 : "0,179927"java.lang.StringToReal.parseDouble에서 java.lang.StringToReal.invalidReal (StringToReal.java:63) 에서 (StringToReal.java:269)
이 경우 누군가 나를 도울 수 있습니까? 감사합니다
당신의 dist_travelled 값이 포함, (쉼표)를 확인하여이 제대로 –
하지만 dist_travelled를 포맷 dist_travelled (유형 더블 :이 기호는 다른 사람의 사이에서 소수점, 그룹화 단락, 마이너스 기호와 퍼센트 기호를 포함 ##. ####). 왜, 내가 다시 포맷 할 때. 로 전환 , ? –
다시 변환 할 필요가 없습니다. dist_travelled가주는 이유 (쉼표)를 확인해야합니다. –