2014-11-14 39 views
0

的結果要計算兩個地點之間的距離後得到兩個值;使用這個鏈接也 Calculate distance in meters when you know longitude and latitude in java如何小數的距離

我得到了我的結果一樣2.4737676E-儀具有兩個緯度和隆基5,它也是一個浮點值。

我只想在decimal.But使用十進制格式和字符串格式,我也不能得到我的預期結果,如(2.47)..它來僅爲0.00。

> 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

你可能想看一下@ 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

實際上浮動值是兩個地方的距離,而那個以米爲單位,我想把米改爲km.so,我需要乘以0.001;然後只有我會得到Km。 –