gpt4 book ai didi

java - 我需要使用 double 而不是 int 来使我的结果正确。为什么? ( java )

转载 作者:行者123 更新时间:2023-11-29 03:04:24 25 4
gpt4 key购买 nike

今天我尝试用 Java 编写一个简单的程序,它可以计算出我输入的数字的平均值。

问题是,如果我使用 int added(如下所示),我不会得到与使用 double added 时相同的答案。

代码:

public class Main {

public static void main(String[] args) {

int amount;
int number;
int added = 0;
double average;

Scanner input = new Scanner(System.in);

System.out.println("This program calculates the average of the numbers entered by you.");
System.out.println("How many numbers do you want to enter?");
amount = input.nextInt();

for(int i=1; i<=amount; i++){
System.out.println("Enter a number:");
number = input.nextInt();
added = added + number;
}

average = added/amount;
System.out.println("The average of the numbers entered is: " + average);

}

}

结果:

This program calculates the average of the numbers entered by you.
How many numbers do you want to enter?
6
Enter a number:
3
Enter a number:
2
Enter a number:
4
Enter a number:
1
Enter a number:
6
Enter a number:
5
The average of the numbers entered is: 3.0

当我使用 double 时,我得到了正确的答案:

public class Main {

public static void main(String[] args) {

int amount;
int number;
double added = 0;
double average;

Scanner input = new Scanner(System.in);

System.out.println("This program calculates the average of the numbers entered by you.");
System.out.println("How many numbers do you want to enter?");
amount = input.nextInt();

for(int i=1; i<=amount; i++){
System.out.println("Enter a number:");
number = input.nextInt();
added = added + number;
}

average = added/amount;
System.out.println("The average of the numbers entered is: " + average);

}

}

当我使用 double added 而不是 int added 时的结果:

This program calculates the average of the numbers entered by you.
How many numbers do you want to enter?
6
Enter a number:
3
Enter a number:
2
Enter a number:
4
Enter a number:
1
Enter a number:
6
Enter a number:
5
The average of the numbers entered is: 3.5

为什么会发生这种情况,我应该怎么做才能避免这种情况?在我看来,added 可能是一个 int,因为我不加小数,但我加整数。

提前谢谢你。

最佳答案

为了使 added/amount 返回非整数,addedamount 必须是 floatdouble 或转换为它们中的任何一个。

当两者都是int时,会进行整数除法,除法后的结果只会转换为double,以便存储在您的double 平均 变量。

关于java - 我需要使用 double 而不是 int 来使我的结果正确。为什么? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32784114/

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