我想要平均9个文本字段以及它们的总和,并使用按钮将它们放在其他2个文本字段中,目前此代码不显示其他文本字段中的任何内容。如果我输入任何内容,例如“A”而不是“%.Of”,它将在文本字段中显示“A”,但不显示平均值或总和。我需要帮助一个可行的代码,不介意我需要改变很多。
这就是我正在使用的:
private void jButton_RankingActionPerformed(java.awt.event.ActionEvent evt) {
double R[] = new double [14];
R[0] = Double.parseDouble(jTextField_Math.getText());
R[1]= Double.parseDouble(jTextField_English.getText());
R[2] = Double.parseDouble(jTextField_Spanish.getText());
R[3] = Double.parseDouble(jTextField_Biology.getText());
R[4] = Double.parseDouble(jTextField_Physics.getText());
R[5] = Double.parseDouble(jTextField_Chemestry.getText());
R[6] = Double.parseDouble(jTextField_PE.getText());
R[7] = Double.parseDouble(jTextField_Humanities.getText());
R[8] = Double.parseDouble(jTextField_Technology.getText());
R[9] = (R[0]+R[1]+R[2]+R[3]+R[4]+R[5]+R[6]+R[7]+R[8])/ 9;
R[10] = R[0]+R[1]+R[2]+R[3]+R[4]+R[5]+R[6]+R[7]+R[8];
String Average = String.format("%.Of",R[9]);
jTextField_Average.setText(Average);
String TotalScore = String.format("%.Of",R[10]);
jTextField_TotalScore.setText(TotalScore);
if(R[10]>=50)
{
jTextField_Ranking.setText("Superior");
}
else if (R[10]>=41){
jTextField_Ranking.setText("Alto");
}
else if (R[10]>=34){
jTextField_Ranking.setText("Basico");
}
else if (R[10]<=33){
jTextField_Ranking.setText("Bajo");
答案 0 :(得分:0)
由于您提到会打印A
,因此会调用jButton_RankingActionPerformed
。您遇到的问题是用于打印总计和平均值的格式字符串。您错误地选择了大写字母O
而不是数字零。
替换它(包含大写字母O):
String.format("%.Of",R[9]);
使用
1)不打印小数:即50.2将是50
String.format("%.0f",R[9]);
2)或许你想要看到一个小数位,如50.2
String.format("%.1f",R[9]);
另外一个非常小的优化是:
R[9] = (R[0]+R[1]+R[2]+R[3]+R[4]+R[5]+R[6]+R[7]+R[8])/ 9;
R[10] = R[0]+R[1]+R[2]+R[3]+R[4]+R[5]+R[6]+R[7]+R[8];
可以替换为:
R[10] = R[0]+R[1]+R[2]+R[3]+R[4]+R[5]+R[6]+R[7]+R[8];
R[9] = R[10] / 9;
或使用循环计算R [10]。 (将R [0]添加到R [8])