2017-03-25 60 views
0

我試圖讓我的檢查得分有1位小數,所以我可以有更精確的答案。如何給積分系統添加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個盒子以同樣的方式設置。

我試了幾件事,我無法弄清楚。我該怎麼辦?

回答

0

首先必須是一個浮動或雙,不是int

代替的setText(...放:

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

曾爲就像我需要,謝謝 –

0

可能最簡單的方法是使用double而不是int,然後將輸出格式化爲顯示一位小數。

0

總計使用雙倍,並使用下面的方法來得到您的答案。

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