2013-01-18 3 views
0

십진수로 변환하려고합니다. 매번 내가 반올림 한 번호를 토스트 할 때마다 "java.text.decimalformat @ 0java.text.decimalformat @ 0"이 표시됩니다. 이것은 내 코드입니다. 당신이 내가 반올림 한 번호를 알아내는 것을 도울 수 있기를 바랍니다.소수점 이하 4 자리로 반올림 한

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를 사용하지 않는. 당신이 format를 호출하고 반환 값를 사용하는 것이입니다 ...

ln2 + " " + la2 

을 : 아이디어는 여기에서하고있는 것처럼, 문자열로 DecimalFormat 객체 자체를 변환하는 것이 아니다.

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

당신은 그 이상을 할 수 있습니다,하지만 가장 근본적인이다 :

(. 현재 당신이 format 호출하지만 쓸모하게 반환 값을 무시하고)

을 그래서 당신이 원하는 문제가 있습니다.

+0

남성 감사합니다. 정말로 도움이됩니다. –

+0

@Aff이 포스트가 귀하의 질문에 답변 한 경우 [답변을 수락해야합니다.] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) –

관련 문제