如何减少小数点后的数字?

时间:2013-09-02 06:03:18

标签: android distance latitude-longitude

     private void findLatLongDistance(double prelat,double prelon,double lat,double lon) {
    // TODO Auto-generated method stub
    try{
        double prelatval=prelat;
        double prelongval=prelon;
        double curlat=lat;
        double curlon=lon;
        Log.w("inside finalatlon...........................","the daya");
        if(prelatval>0.0 && prelongval>0.0 && lat>0.0 &&  lat>0.0 && gpsdataElements.Speed>0.0){
            float distance2 = getDistance(prelatval,prelongval,curlat,curlon);
            odometer_sum= (distance2/1000 );
            // for maximum value after decimal
            //df.setMaximumFractionDigits(0);

            //rounding the km digits after decimal
            Math.round(distance2);

            //for minimum distance after decimal
            df.setMinimumFractionDigits(2);
            df.format(odometer_sum);
            gpsdataElements.Distance = gpsdataElements.Distance + odometer_sum;
        }
    }catch(Exception e){
        e.printStackTrace();
    }
}

这是我的代码。我希望小数点后的距离(即km)值是两位数。例如我希望1.54km的公里值不像1.4568923km。如何得到这样。我尝试了很多,但我没有任何可能的解决方案。任何人都知道请帮助我。

6 个答案:

答案 0 :(得分:2)

您可以通过更简单的方式使用此方法:

double roundOff = Math.round(yourValue * 100.0) / 100.0;

否则你也可以这样做

String.format("%.2f", d)

答案 1 :(得分:1)

DecimalFormat formatter = new DecimalFormat(".##");
String s = formatter.format(value);

答案 2 :(得分:0)

使用此代码格式化十进制后的两位数字。

double i2=i/60000;
tv.setText(new DecimalFormat("##.##").format(i2));

答案 3 :(得分:0)

double roundof = Math.round(a * 100.0) / 100.0;

输出:舍入(例如:12).oo

12.00

答案 4 :(得分:0)

这样的事情:

String.format("%.2f", distance);

答案 5 :(得分:0)

使这样的函数按照你的要求传递值并根据你的要求返回值第一个函数将取浮点值并在十进制之后根据参数设置3个值如果你想改变十进制值然后你可以改变3, 2,4等......第二个函数将取String值并将其舍入为3小数点:

public static BigDecimal round(float d) {
    BigDecimal bd = new BigDecimal(Float.toString(d));
    bd = bd.setScale(3, BigDecimal.ROUND_HALF_UP);       
    return bd;
}
public static BigDecimal round(String d) {
   BigDecimal bd = new BigDecimal(Float.parseFloat(d));
   bd = bd.setScale(3, BigDecimal.ROUND_HALF_UP);       
   return bd;
}