0

double の数値を 10 進数に変換しようとしました。丸めた数値を乾杯するたびに、「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 に答える