2014-11-14 42 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。 –