Java 为什么我的答案显示为无穷大?
我对这有点陌生,所以请容忍我 我正在创建一个程序,允许用户输入一个课程作业的分数和考试分数,然后计算总成绩。输入的值必须介于1和10之间。课程占40%,考试占60%。值1-10必须转换成百分比,这就是我认为无穷大误差发生的地方 这是我的代码(代码后面会有'if'和'else'语句,但我认为我可以接受。同时忽略底部的最终分类):Java 为什么我的答案显示为无穷大?,java,double,percentage,Java,Double,Percentage,我对这有点陌生,所以请容忍我 我正在创建一个程序,允许用户输入一个课程作业的分数和考试分数,然后计算总成绩。输入的值必须介于1和10之间。课程占40%,考试占60%。值1-10必须转换成百分比,这就是我认为无穷大误差发生的地方 这是我的代码(代码后面会有'if'和'else'语句,但我认为我可以接受。同时忽略底部的最终分类): CourseworkPerc和ExamPerc似乎是问题所在。我希望能够显示小数点后2位的百分比。例如,课程作业中10分之5(价值40%)=20.00%,考试中10分之5
CourseworkPerc
和ExamPerc
似乎是问题所在。我希望能够显示小数点后2位的百分比。例如,课程作业中10分之5(价值40%)=20.00%,考试中10分之5(价值60%)=30.00%,因此总成绩为50.00%
希望这是有道理的。感谢您的建议。谢谢这是由于这行的整数除法:
ExamPerc = (ExamDoub / (10 / 60));
10
和60
都是整数,因此(10/60)
会得到整数答案--0
如果其中一个是双字面值,例如10.0
(或等效为10d
或(double)10
),则会得到双结果--0.166666
示例修复程序:
ExamPerc = (ExamDoub / (10.0 / 60));
旁注:
ExamDoub/(10/60)=ExamDoub/(1/6)=ExamDoub*6
。不要做不必要的数学。正确。但我想补充一点:ExamDoub/(10/60)=ExamDoub/(1/6)=ExamDoub*6
。这个部门没有必要。谢谢,它起作用了。:)简单到我看不见的东西。如何使其显示为小数点后两位的百分比?它只显示为小数点后1位。
ExamPerc = (ExamDoub / (10.0 / 60));