我对此很新,所以请耐心等待。
我正在创建一个程序,允许用户输入一个课程作业和考试成绩的分数,然后计算总成绩。输入的值必须介于1到10之间。课程作业为40%,考试成绩为60%。值1-10必须转换为百分比,这是我认为无穷大错误正在发生的地方。
这是我的代码(代码后面会有'if'和'else'语句,但我想我会好的。还要忽略底部的最终分类):
import javax.swing.JOptionPane;
public class Question3 {
public static void main(String[] args) {
String Coursework, Exam;
Coursework = JOptionPane.showInputDialog("Please enter coursework score out of 10:");
Exam = JOptionPane.showInputDialog("Please enter exam score out of 10");
double CourseworkDoub, ExamDoub, CourseworkPerc, ExamPerc, FinalMark;
CourseworkDoub = Double.parseDouble(Coursework);
CourseworkPerc = (CourseworkDoub / 0.25);
ExamDoub = Double.parseDouble(Exam);
ExamPerc = (ExamDoub / (10 / 60));
FinalMark = (CourseworkPerc + ExamPerc);
JOptionPane.showMessageDialog(null, "Final mark: " + FinalMark + "\nFinal classification is a ", "Result", JOptionPane.INFORMATION_MESSAGE);
}
}
CourseworkPerc
和ExamPerc
似乎是问题所在。我希望能够将百分比显示为2位小数。例如,课程作业中的10分(价值40%)= 20.00%,考试中10分(满分60%)= 30.00%因此整体成绩为50.00%
希望这是有道理的。感谢任何给出的建议。感谢
答案 0 :(得分:6)
这是由于这一行中的整数除法:
ExamPerc = (ExamDoub / (10 / 60));
10
和60
是整数,因此(10 / 60)
会产生整数答案 - 0
。
如果其中一个是双字面,例如10.0
(或等效地,10d
或(double)10
),您获得了双重结果 - 0.166666
。
示例修复:
ExamPerc = (ExamDoub / (10.0 / 60));