我的 java 应用程序有一个小问题。
我必须计算他们完成后的分数,我使用这个方法:
public Float ScoreProcent(int questions, int correct){
Float x = new Float(questions);
Float y = new Float(correct);
Float num = (float) (100 / questions * correct);
return num;
}
然而,当我有 38 个问题并且其中 38 个问题是正确的时,它会显示 76。
首先,你不应该使用Float
到处都是——你想要的float
;没有必要在这里打拳击。
其次,你没有使用x
and y
at all.
第三,我想说你表达方程的方式至少是令人困惑的。它是possible只是改变为x
and y
很好,但我不会——我会改变你表达自己的整个方式。
第四,用 PascalCase 编写方法名称违反了 Java 命名约定。你也有一个拼写错误。
解决所有这些问题后,您将得到如下结果:
public static float getPercentageCorrect(int questions, int correct) {
float proportionCorrect = ((float) correct) / ((float) questions);
return proportionCorrect * 100;
}
我实际上概括了这一点 - 它并不特定于“正确答案”,因此可以用于任何得分为总分的事情:
/**
* Returns a proportion (n out of a total) as a percentage, in a float.
*/
public static float getPercentage(int n, int total) {
float proportion = ((float) n) / ((float) total);
return proportion * 100;
}
正如评论中指出的,这could写为:
float proportion = (float) n / total;
...但是您需要知道优先规则来验证它。我已经明确地包含了两个强制转换,以明确我想要将每个操作数转换为float
before该部门。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)