-1
     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();
    }
}

这是我的代码。我希望小数点后的距离(即公里)值数字是两位数。示例我想要 1.54 公里的公里值而不是 1.4568923 公里。如何做到这一点。我为此尝试了很多,但我没有任何可能的解决方案。任何知道的人请帮助我。

4

6 回答 6

2

您可以使用更简单的方法来执行此操作:

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

否则,您也可以这样做

String.format("%.2f", d)
于 2013-09-02T06:08:41.537 回答
1
DecimalFormat formatter = new DecimalFormat(".##");
String s = formatter.format(value);
于 2013-09-02T06:09:37.103 回答
0

使用此代码将文本格式化为小数点后两位数。

double i2=i/60000;
tv.setText(new DecimalFormat("##.##").format(i2));
于 2013-09-02T06:07:34.807 回答
0
double roundof = Math.round(a * 100.0) / 100.0;

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

12.00

于 2013-09-02T06:09:09.167 回答
0

像这样的东西:

String.format("%.2f", distance);
于 2013-09-02T06:11:23.220 回答
0

使这样的函数根据您的要求传递值,并根据您的要求返回值第一个函数将采用浮点值,如果您想更改十进制值,则在小数点后根据参数输入 3 个值,然后您可以更改 3,2,4等等...第二个函数将采用字符串值并将其四舍五入到小数点后 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;
}
于 2013-09-02T06:20:29.250 回答