【发布时间】:2016-05-11 02:06:16
【问题描述】:
在这个脚本中,我需要填写一行数字并在我想停止它时输入 -1。当它停止时,它应该计算并显示数字的总和(总和),填写的数字数量不包括-1(数量)和平均值(平均)。每当我输入像 10 和 20 这样的数字时,它很好地表明平均值是 15。但是当小数必须改变时,例如我输入 10 和 11(所以它必须显示 10.5)它只显示 10.0 因此它是错误的。当 avg 为双精度时,为什么小数点仍保留在 X.0 上?我做错了什么?
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int sum = 0;
int amount = 0;
double avg = 0;
while (true) {
System.out.println("Type numbers: ");
int number = Integer.parseInt(reader.nextLine());
if (number == -1) {
break;
} else {
amount++;
sum = sum + number;
}
}
avg = avg + sum / amount;
System.out.println("Thank you and see you later!");
System.out.println("The sum is: " + sum);
System.out.println("How many numbers: " + amount);
System.out.println("Average: " + avg);
}
【问题讨论】:
-
定义“十进制”。你的意思是(a)基数(b)小数点(c)小数位(d)数字?提示:只有(a)是正确的;其他只是对标准术语的滥用。注意 Java 不是脚本语言,这也不是脚本。
-
抱歉,不清楚,反正从你的帖子中学到了一些新东西;)
-
道歉没有必要,但我们的想法是修复你的帖子,这样人们就可以知道你在说什么。假设意味着一个答案,那就是。
标签: java loops int double decimal