2014-11-14 5 views
0

의 결과에 대한 소수점 후 2 개 값을 얻는 방법, 나는 2.4737676E- 같은 m로 내 결과를 가지고 너무 Calculate distance in meters when you know longitude and latitude in java두 장소 사이의 거리를 계산하는 거리

이 링크를 사용하여 두 위도와 longi로 5, 그것도 부동 값.

소수점 형식과 문자열 형식을 사용하여 decimal.But 후에 만 ​​처음 두 값을 가져오고 싶습니다. 또한 (2.47)과 같은 예상 결과를 얻을 수 없습니다.

> float meanwhiledist=distFrom(latti,longii,curlat,curlongi); 
>     DecimalFormat df2 = new DecimalFormat("#.00"); 
>     double dd2dec = new Double(df2.format(meanwhiledist)); 

         or 

      Double dd = Double.valueOf(meanwhiledist); 
      String angleFormated = String.format("%.2f", dd); 

if i print angleformated and dd2dec my result coming as 0.00   
+0

당신은 mete에서 거리를 계산하는 데 도움이됩니다보세요 @ map utils 라이브러리를 가지고 싶어 할 수도 있습니다 rs. 전환이 문제가되지 않아야합니다. https://developers.google.com/maps/documentation/android/utility/#spherical – Raghunandan

답변

0

2.4737676E-5의 값은 예상보다 적은 것 같다 :

출력
float ff= 2.4737676E-5f; 
    System.out.println("float value: "+ff); 
    Double dd=Double.valueOf(ff); 
    System.out.println("double value: "+dd); 
    BigDecimal test=new BigDecimal(dd); 
    System.out.println("big decimal value: "+test); 
    String angleFormatted=test.toString(); 
    System.out.println("String value: "+angleFormatted); 

: 당신이 얻을 출력이 첫 번째 반환하기 때문에 실제로 올

float value: 2.4737676E-5 
double value: 2.4737675630603917E-5 
big decimal value: 0.000024737675630603916943073272705078125 
String value: 0.000024737675630603916943073272705078125 

0.000에서 2 소수 자릿수 .....

+0

, 좋아요. 어떻게 예상 결과를 2.47로 얻을 수 있습니까? @MihaiC –

+0

@KarthickM 2.47 실제로 그보다 작 으면? 2.47은 올바른 가치를 나타내는 것이 아닙니다. 맞습니까? – MihaiC

+0

사실 float 값은 두 장소의 거리이며 하나는 미터로오고, 나는 meter를 km로 변경하려고합니다. 그래서 0.001로 곱해야합니다. 그러면 Km 만 얻을 것입니다. –

관련 문제