Java 我输入的分数总是返回0?

Java 我输入的分数总是返回0?,java,class,rational-number,Java,Class,Rational Number,可能重复: 所以我在写这个程序,我觉得它很好。GUI窗口弹出,我输入了一个分子和一个拆卸器。但不管我输入什么,它总是说它等于0。所以,如果我把2作为分子,把3作为消旋分子,输出将是2/3=0。有什么问题吗 我将“int dec”改为“double dec”,如下所示,并将“this.dec=dec”放在Rational类下,但这并没有解决任何问题 import javax.swing.JOptionPane; public class lab8 { public static void m

可能重复:

所以我在写这个程序,我觉得它很好。GUI窗口弹出,我输入了一个分子和一个拆卸器。但不管我输入什么,它总是说它等于0。所以,如果我把2作为分子,把3作为消旋分子,输出将是2/3=0。有什么问题吗

我将“int dec”改为“double dec”,如下所示,并将“this.dec=dec”放在Rational类下,但这并没有解决任何问题

import javax.swing.JOptionPane;


public class lab8
{
public static void main (String args[])
{
    String strNbr1 = JOptionPane.showInputDialog("Enter Numerator ");
    String strNbr2 = JOptionPane.showInputDialog("Enter Denominator ");

    int num = Integer.parseInt(strNbr1);
    int den = Integer.parseInt(strNbr2);

    Rational r = new Rational(num,den);
    JOptionPane.showMessageDialog(null,r.getNum()+"/"+r.getDen()+" equals "+r.getDecimal());

    System.exit(0);
}
}



class Rational
{
private int num;
private int den;
private double dec;

public Rational(int num, int den){
 this.num = num;
 this.den = den;
 this.dec = dec;
}
public int getNum()
{
    return num;
}

public int getDen()
{
    return den;
}

public double getDecimal()
{
    return dec;
}

private int getGCF(int n1,int n2)
{
    int rem = 0;
    int gcf = 0;
    do
    {
        rem = n1 % n2;
        if (rem == 0)
            gcf = n2;
        else
        {
            n1 = n2;
            n2 = rem;
        }
    }
    while (rem != 0);
    return gcf;
}
}

在类
Rational
中,
dec
未初始化,因此默认为0。因此,当您以后调用
getDecimal()
时,它总是返回0

public Rational(int num, int den){
  this.num = num;
  this.den = den;

  // TODO: initialize dec here, otherwise it is implicitly set to 0.
}

在类
Rational
中,
dec
未初始化,因此默认为0。因此,当您以后调用
getDecimal()
时,它总是返回0

public Rational(int num, int den){
  this.num = num;
  this.den = den;

  // TODO: initialize dec here, otherwise it is implicitly set to 0.
}

并且
getDecimal
返回一个
int
我把this.dec=dec放在Rational类中,但它没有修复anything@D.Shawley我照你说的做了,但仍然没有骰子,还有什么需要修复的吗?尝试:(1)删除
dec
,(2)实现
getDecimal
以返回将
num
除以
den
的结果,(3)再做一件事使其work@user1991954您必须计算值:
this.dec=(double)num/den。注意强制转换为
double
,否则它将被截断(
1/2==0
)。但是,请不要直接编辑问题,因为其他读者很难理解。常见的方法是在问题的末尾写上“Edit”并澄清要更改的内容。然后
getDecimal
返回一个
int
我把这个.dec=dec放在Rational类中,但它没有修复anything@D.Shawley我照你说的做了,但仍然没有骰子,还有什么需要修复的吗?尝试:(1)删除
dec
,(2)实现
getDecimal
以返回将
num
除以
den
的结果,(3)再做一件事使其work@user1991954您必须计算值:
this.dec=(double)num/den。注意强制转换为
double
,否则它将被截断(
1/2==0
)。但是,请不要直接编辑问题,因为其他读者很难理解。常见的方法是在问题的末尾写上“编辑”并澄清要更改的内容。他们不是在实验室教授测试和调试吗?他们不是在实验室教授测试和调试吗?