我对此有点陌生,所以请多多包涵。
我正在创建一个程序,允许用户输入类(class)作业的分数和考试分数,然后计算总成绩。输入的值必须在 1 到 10 之间。类(class)作业占 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
似乎是问题所在。我希望能够将百分比显示到小数点后两位。例如,类(class)作业 10 分中有 5 分(值(value) 40%)= 20.00%,考试中 10 分中有 5 分(值(value) 60%)= 30.00% 因此总分是 50.00%
希望这是有道理的。感谢您提供的任何建议。谢谢
最佳答案
这是由于这一行的整数除法:
ExamPerc = (ExamDoub / (10 / 60));
10
和 60
是整数,因此 (10/60)
得到一个整数答案 -- 0
.
如果其中一个是双重文字,例如10.0
(或等同于 10d
或 (double)10
),您会得到一个 double 结果 -- 0.166666
。
示例修复:
ExamPerc = (ExamDoub / (10.0 / 60));
关于java - 为什么我的答案显示为无穷大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26661875/