gpt4 book ai didi

java - 平均成绩数学显示不正确

转载 作者:行者123 更新时间:2023-12-01 22:40:50 25 4
gpt4 key购买 nike

我一生都无法弄清楚为什么我的平均值显示不正确,我已经看了大约 2 个小时了。

import java.util.Scanner;
public class midterm
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
int examScore =0;
int averageExamScore = 0;
int numStudent=0;
int sum=0;

while(examScore >= 0)
{
System.out.println("Enter exam scores (enter negative number to quit): ");
examScore = keyboard.nextInt();
numStudent++;
sum = sum + examScore;
}
if(numStudent > 0)
{
averageExamScore = sum/numStudent;

}
else
{
System.out.println("No scores to average");
}
}
}

最佳答案

这里的问题是整数除法。

averageExamScore = sum/numStudent;

这三个参数都是整数,这意味着:

  • 如果将商的一部分转换为 double,则会丢失精度(并导致编译失败)

    示例:

     averageExamScore = (double)sum/numStudent; // wouldn't compile
  • 提供商 sum/numStudent 的下限,而不是整个数字(因此对于像 4.9 这样的数字,您会得到 4 )。

您可以通过几种方式解决此问题:

  • averageExamScore 声明为 double。这是必需的。
  • sumnumStudent 转换为 double,或者将其类型更改为 double

关于java - 平均成绩数学显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26173887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com