2017-03-25 13 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%」ではなく「72.1%」のような小数点以下の桁が必要です。同じように36個のボックスが設定されています。

Iveはいくつかのことを試みましたが、わかりません。私は何をしますか?

答えて

0

まず合計は(のsetText代わり

をint型ではない、floatまたはdoubleでなければなりません...入れ:

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

は、私は、おかげで必要なだけのように働きました –

0

おそらく最も簡単な方法はintの代わりにdoubleを使用して、小数点以下1桁を表示するように出力をフォーマットすることです。

0

あなたの答えを得るために、合計を2つ使用し、以下の方法を使用してください。

public double getFormattedTotal(double total){ 
    DecimalFormat precision = new DecimalFormat("0.0"); 
    return precision.format(total); 
} 
関連する問題