2013-01-18 79 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) –