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



计算两个地方之间的距离;两个纬度和经度也使用此链接当您知道 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        

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 位小数.....

最新更新