如何为得分系统添加1个小数位

时间:2017-03-25 14:06:25

标签: android checkbox

我试图让我的检查得分有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个盒子以相同的方式设置。

我尝试了一些事情,我无法弄明白。我该怎么办?

3 个答案:

答案 0 :(得分:0)

最简单的方法可能是使用double而不是int,然后格式化输出以显示一位小数。

答案 1 :(得分:0)

使用double总计并使用以下方法获得答案。

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

答案 2 :(得分:0)

首先总计必须是float或double,而不是int

而不是setText(... put:

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