0

我试图将我的双数转换为十进制。每次我敬酒我四舍五入的数字时,都会显示“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();
4

1 回答 1

4

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

ln2 + " " + la2

...这是您调用format 并使用返回值

(目前您正在调用format但忽略返回值,这使其无用。)

所以你要:

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

您可能想要的不止这些,但这是您当前代码中最基本的问题。

于 2013-01-18T13:28:05.463 回答