2016-11-28 95 views
-1

我编写了一个小测试,最后结果应该显示一个百分比。目前有三个问题,并且百分比几乎是正确的,例如2/3将显示66.0%,而不是66.7或67. 百分比被格式化为双倍并且得分为整数。这可能是一个原因吗? 我也尝试过在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

【JAVA](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

谢谢 - 我现在明白了。有趣的是,计算显示66,而不是67,但我想整数计算删除逗号后的所有内容,而不是四舍五入。 – kingklang