Java 奇怪的行为

Java 奇怪的行为,java,casting,wrapper,Java,Casting,Wrapper,大家好,我对语言有点陌生,我制作了一个关于斐波那契的简单程序 程序运行得很好,但是当我试图得到平均数时,会出现奇怪的行为 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++) {

大家好,我对语言有点陌生,我制作了一个关于斐波那契的简单程序 程序运行得很好,但是当我试图得到平均数时,会出现奇怪的行为

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);
公共类fibonacci{
/**
*@param args
*/
公共静态整数fibonaccifun(整数)
{
int firstvar=1;
int secondvar=0,total=0,sum=0;

对于(int i=0;i,因为在第二种情况下

fibonacci.fibonaccifun(5)/5

转到2,因为
fibonaccifun
和5的结果都是整数,然后你将其转换为浮点。(如果你除以2个整数,结果就是整数,整数显然不能有小数)

在第一种情况下

(float)(fibonacci.fibonaccifun(5))


使fibonaccifun的结果成为浮点数,然后进行除法。

因为在第二种情况下

fibonacci.fibonaccifun(5)/5

转到2,因为
fibonaccifun
和5的结果都是整数,然后你将其转换为浮点。(如果你除以2个整数,结果就是整数,整数显然不能有小数)

在第一种情况下

(float)(fibonacci.fibonaccifun(5))


将fibonaccifun的结果设为浮点数,然后进行除法。

至少需要计算分子或分母

((float) fibonacci.fibonaccifun(5)/5)
你正在除以2个整数。除了一个被转换为浮点的整数,你永远不会得到任何东西(因此2.0)

修正:


您至少需要计算分子或分母

((float) fibonacci.fibonaccifun(5)/5)
你正在除以2个整数。除了一个被转换为浮点的整数,你永远不会得到任何东西(因此2.0)

修正:


运算顺序:在数学和计算机编程中,运算顺序(有时称为运算符优先级)是一条规则,用于明确说明在给定数学表达式中应首先执行哪些过程

括号 倡导者 乘法 分部 附加 减法


这是一个完美的例子,说明了一个括号的切换如何将整个程序的逻辑抛出门外。

运算顺序:在数学和计算机编程中,运算顺序(有时称为运算符优先)是一条规则,用于明确说明在给定数学表达式中应首先执行哪些过程

括号 倡导者 乘法 分部 附加 减法

这是一个完美的例子,说明了一个括号的切换是如何将整个程序的逻辑抛出门外的