如何在文本字段中将double值转换为字符串

时间:2018-03-24 14:46:36

标签: java netbeans textfield

我想要平均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");

1 个答案:

答案 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])