我试图让我的检查得分有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 :(得分: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