该程序应该包含两个分子和两个分母,并以分数形式输出它们,同时还添加和乘以所述分数。还需要我有一个驱动程序和分数类,它执行加法,乘法,打印分数,并打印为double。这与Fraction类有关。我无法弄清楚如何在我的分数类中得到一个分数作为双重打印。我想知道如何让printAsDouble()与我所拥有的一起工作。还有一种方法可以使用Fraction add或Fraction multi的输出并通过printAsDouble()发送它吗?
这是我的代码:
public class Fraction
{
int numer, denom;
double end;
public int getNumerator()
{
return this.numer;
};
public void setNumerator(int inNumer)
{
this.numer = inNumer;
}
public int getDenominator()
{
return this.denom;
};
public void setDenominator(int inDenom)
{
this.denom = inDenom;
}
public Fraction add(Fraction input)
{
Fraction output = new Fraction();
output.setNumerator((this.getNumerator()*input.getDenominator())+(input.getNumerator()*this.getDenominator()));
output.setDenominator(this.getDenominator()*input.getDenominator());
return output;
}
public Fraction multi(Fraction input)
{
Fraction output = new Fraction();
output.setNumerator(input.getNumerator()*this.getNumerator());
output.setDenominator(input.getDenominator()*this.getDenominator());
return output;
};
public int print(Fraction input)
{
System.out.println(this.getNumerator + "/" + this.getDenominator);
System.out.println(input.getNumerator + "/" + input.getDenominator);
};
public double printAsDouble(numer denom)
{
double numer, denom;
System.out.println();
System.out.println();
};
};
任何帮助或正确方向的观点都将不胜感激!
答案 0 :(得分:2)
你可能只需要这个演员:
public void printAsDouble()
{
double result = (double)numer / denom; // class attributes
System.out.println(result);
}
or
public double getAsDouble()
{
double result = (double)numer / denom; // class attributes
return result;
}
否则double result = numer / denom;
会被投放到int
。
double printAsDouble()
看起来在语义上对我来说是错误的。
答案 1 :(得分:0)
您的分子和分母已存储在您的对象中,因此将它们传递给您的打印方法毫无意义。如果您对此get
有其他用途,那么使用print
方法和double
方法可能是值得的。所以我会这样做。
public double getValue() {
return (double)numer / denom;
}
public void printAsDouble() {
System.out.println(getValue());
}
强制转换为double
是必要的,以防止整数除法自动进行舍入。