十进制格式四舍五入到小数点后4位

时间:2013-01-18 13:26:06

标签: java decimalformat

我试图将我的双数转换成十进制数。每当我敬酒我已经舍入的数字时,会显示“java.text.decimalformat @ 0java.text.decimalformat @ 0”。这是我的代码。希望你能帮我解决一下我的数字。

gps = new GPSTracker(Test.this);
    double lat = gps.getLatitude();
    DecimalFormat lat2 = new DecimalFormat();
    lat2.setMaximumFractionDigits(4);
    lat2.format(lat);


    double lng = gps.getLongitude();
    DecimalFormat lng2 = new DecimalFormat();
    lng2.setMaximumFractionDigits(4);
    lng2.format(lng);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.abc);


    Bundle extras = getIntent().getExtras();
    String ItemChosen = extras.getString("s");

    String latIndex = extras.getString("latt");
    double la = Double.parseDouble(latIndex);
   DecimalFormat la2 = new DecimalFormat();
   la2.setMaximumFractionDigits(4);
    la2.format(la);


    String lngIndex = extras.getString("lng");
    double ln = Double.parseDouble(lngIndex);
   DecimalFormat ln2 = new DecimalFormat();
  ln2.setMaximumFractionDigits(4);
   ln2.format(ln);


        Toast.makeText(getApplicationContext(),ln2 + " " + la2, 
        Toast.LENGTH_LONG).show();

        Toast.makeText(getApplicationContext(),lng2 + " " + lat2, 
                Toast.LENGTH_LONG).show();

1 个答案:

答案 0 :(得分:4)

您没有正确使用DecimalFormat。这个想法不是你将DecimalFormat对象本身转换为字符串,就像你在这里做的那样:

ln2 + " " + la2

...您致电format 并使用返回值

(目前你正在调用format,但忽略了返回值,这使得它无用。)

所以你想要:

ln2.format(ln) + " " + la2.format(la)

您可能需要更多,但这是您当前代码中最基本的问题。