【发布时间】:2014-09-17 22:15:17
【问题描述】:
我需要 java 来保持结果的真实值,这是我的代码:
`
Scanner scan = new Scanner(System.in);
int test1;
int test2;
int quiz1;
int quiz2;
int quiz3;
double homework;
System.out.println("Please enter your test grades.");
test1 = scan.nextInt();
test2 = scan.nextInt();
System.out.println("Please enter you quiz grades.");
quiz1 = scan.nextInt();
quiz2 = scan.nextInt();
quiz3 = scan.nextInt();
System.out.println("Please enter your homework average.");
homework = scan.nextDouble();
double quizaverage = (quiz1 + quiz2 + quiz3)/3;
double testaverage = (test1 + test2)/2;
System.out.println("Test Average " + (testaverage) + "");
System.out.println("quiz Average " + (quizaverage) + "");
double finalgrade = (testaverage) * 0.5 + (quizaverage)* 0.3 + (homework) * 0.2;
System.out.println("Final Grade " + (finalgrade) + "");`
我输入的值:
*test 1=89, test 2=86, quiz 1=84, quiz 2=84, quiz 3=83, homework=90.12*
一切正常,但问题是我需要 test average 变量和 quiz average 变量不要向下舍入,因为我的测试平均值得到 87.0 和 83.0 用于我的测验平均值,当我运行程序时,这些值会影响最终成绩变量,因为我需要获得 86.874 的最终成绩,而不是 86.424。所以我将他们的真实值 87.5 用于测试平均 和 83.66666666666667 用于测验平均 以获得真正的最终成绩。基本上我需要知道如何防止java四舍五入(我认为)。我希望我没有让它听起来很复杂,感谢所有帮助。
【问题讨论】:
标签: java math int double java.util.scanner