gpt4 book ai didi

java - 包装奇怪的行为

转载 作者:行者123 更新时间:2023-12-02 00:18:36 25 4
gpt4 key购买 nike

大家好,我对这门语言有点陌生,我编写了这个关于斐波那契的简单程序该程序工作正常,但当我尝试获取平均数时出现奇怪的行为

public class fibonacci {

/**
* @param args
*/
public static int fibonaccifun(int number)

{
int firstvar=1;
int secondvar=0,total=0,sum=0;
for(int i=0;i<number;i++)
{
total =firstvar+secondvar;
System.out.println(total);
firstvar=secondvar;
secondvar=total;
sum+=total;

}

return sum;
}

public static void main(String[] args) {
// TODO Auto-generated method stub



float aver= (float) ( fibonacci.fibonaccifun(5)/5);
System.out.println(aver);

......................................

当我尝试

float aver= (float) ( fibonacci.fibonaccifun(5))/5; 结果是 2.4,这是正确的值,但是当我这样做时

float aver= ((float) fibonacci.fibonaccifun(5)/5); 平均值=2.0;

我不知道为什么会这样做,所以任何人都可以帮我解释一下,谢谢大家。

最佳答案

因为在第二种情况

fibonacci.fibonaccifun(5)/5

变为 2,因为 fibonaccifun 的结果和 5 都是整数,THEN 您转换为浮点型。 (如果你除2个整数,结果是一个整数,而整数显然不能有小数)

第一种情况

(float) ( fibonacci.fibonaccifun(5))

使 fibonaccifun 的结果成为 float ,然后进行除法。

关于java - 包装奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453694/

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