如何获得距离结果的小数点后的两个值

时间:2014-11-14 08:14:59

标签: java android decimalformat

计算两个地方之间的距离;使用此链接也可以使用两个lat和longi Calculate distance in meters when you know longitude and latitude in java

我得到的结果像2.4737676E-5那样,它也是一个漂浮值。

我想在十进制之后只作为前两个值。但是使用十进制格式和字符串格式也无法得到我想要的结果,如(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        

1 个答案:

答案 0 :(得分: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位小数