为什么我的答案显示为Infinity?

Nat*_*ren 2 java double percentage

我对此很新,所以请耐心等待.

我正在创建一个程序,允许用户输入一个课程作业和考试成绩的分数,然后计算总成绩.输入的值必须介于1到10之间.课程作业为40%,考试成绩为60%.值1-10必须转换为百分比,这是我认为无穷大错误发生的地方.

这是我的代码(代码后面会有'if'和'else'语句,但我想我会好的.还要忽略底部的Final Classification):

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);

    }

}
Run Code Online (Sandbox Code Playgroud)

CourseworkPercExamPerc似乎是问题.我希望能够将百分比显示为2位小数.例如,课程作业中的10分(价值40%)= 20.00%,考试中10分(满分60%)= 30.00%因此整体成绩为50.00%

希望这是有道理的.感谢任何给出的建议.谢谢

tha*_*guy 6

这是由于此行中的整数除法:

ExamPerc = (ExamDoub / (10 / 60));
Run Code Online (Sandbox Code Playgroud)

10并且60是整数,因此(10 / 60)得到整数答案 - 0.

如果其中一个是双字面的,例如10.0(或等效地,10d(double)10),则得到双重结果 - 0.166666.

示例修复:

ExamPerc = (ExamDoub / (10.0 / 60));
Run Code Online (Sandbox Code Playgroud)