2017-03-25 1 views
0

나는 정밀한 답을 가질 수 있도록 내 검사의 점수를 1 자리로 만들려고 노력하고 있습니다.스코어 시스템에 소수점 이하 자릿수를 더하는 방법

result = (TextView) findViewById(R.id.displaym1score); 
    sum=0; 
    total=0; 


    box1 = (CheckBox) findViewById(R.id.box1); 
    box1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      if (box1.isChecked()) { 
       sum += 1;  int total = 100*sum/37; 
       result.setText(total + "%"); 
      } 
      else { 
       sum -= 1;  int total = 100*sum/37; 
       result.setText(total + "%"); 
      } 
     } 
    }); 

각 당신이 그것을 즉시 업데이트하고 점수가 그냥 "72.1 %"대신 "72 %"와 같은 소수점 자리를 가질 필요가 확인 상자. 같은 방식으로 36 개의 상자가 추가로 설정되어 있습니다.

Ive는 몇 가지 시도를했지만 알아낼 수 없습니다. 나는 무엇을해야합니까?

답변

0

먼저 부동 또는 이중 (의 setText 대신

을 int로하지를해야합니다 ... 넣어 :

result.setText(String.format("%.1f", total) + "%"); // 1 is the decimal places you want 
+0

내가 필요한처럼 일했다, 감사 –

0

아마도 가장 쉬운 방법은 int 대신 double을 사용하고 소수점 이하 한 자리를 표시하도록 출력을 포맷하는 것입니다.

0

총 2 회 사용하고 다음과 같은 방법으로 답을 얻으십시오.

public double getFormattedTotal(double total){ 
    DecimalFormat precision = new DecimalFormat("0.0"); 
    return precision.format(total); 
} 
관련 문제