2016-11-28 8 views
-1

私は小さなテストをプログラムしましたが、最終的に結果はパーセンテージを示すはずです。現在、3つの質問があり、割合はほぼ正確です(例: 2/3は66.7または67の代わりに66.0%を表示します。 パーセントは倍精度で、スコアは整数としてフォーマットされます。それが理由だろうか? 私もsettext内で計算しようとしましたが、うまくいきませんでした。そこで私はパーセンテージ変数を考案しました。settextのパーセンテージフォーマットが正しく表示されない

... 
else{ 
       //neue Frage oder Testende 
       if(durchlauf < 3){ 
        SetNextQuestion(); 
       } 
       else{ 
        qt.setText(""); 
        rdg.setVisibility(View.INVISIBLE); 
        hintbutton.setVisibility(View.INVISIBLE); 

        percentage = ((score * 100)/3); 
        t.setText("Test abgeschlossen \n" + "Punkte: " + score + " (" + String.format("%.2f", percentage) + "%)"); 
       } 
+0

は、フロートの代わりに、二重の – Ak9637

+0

を使用してみてください[ジャワ](http://docs.oracle.com/javase/specs/jls/se7/html /jls-15.html#jls-15.17)[基本](http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6.2) – Selvin

答えて

0
percentage = ((score * 100)/3); 

この割り当ての右辺は整数として計算され、のみ、整数結果は、二重に割り当てられています。あなたも、浮動小数点の計算を変更する場合があります

percentage = ((score * 100.0)/3); 
+0

ありがとう - 私は今それを理解する。興味深いことに、計算では67の代わりに66が表示されますが、整数計算では丸めではなくカンマの後にすべてが切り捨てられます。 – kingklang

関連する問題