2013-01-18 107 views
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

您沒有正確使用DecimalFormat。這個想法是不是你的DecimalFormat對象本身轉換爲字符串,因爲你在這裏做什麼:

ln2 + " " + la2 

...這是你打電話format和使用返回值

(目前你打電話format但忽略返回值,這使得它沒用)

所以,你想:

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

您可能需要比這更多,但是這是最根本的問題在你當前的代碼中。

+0

男人非常感謝你..你真的幫助。 –

+0

@AffWan如果這篇文章回答了你的問題,[你應該接受答案。](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –