我无法让我的方法来加、减和除分数。我已经有了乘法部分,我只是在添加时无法获得正确的输出。请帮我弄清楚我做错了什么我是Java新手,我还在学习。这是我到目前为止所得到的。``
private int numer;
private int denom;
public Fraction(int num, int den) {
numer = num;
denom = den;
simplify();
}
public int findGcd(int a, int b) {
int temp;
while (b != 0) {
temp = b;
b = a % b;
a = temp;
}
return a;
}
void simplify() {
int gcd = findGcd(numer, denom);
numer /= gcd;
denom /= gcd;
}
public int getNumer() {
return numer;
}
public int getDenom() {
return denom;
}
Fraction add(Fraction x) {
Fraction answer;
if (x.getDenom() == denom) {
answer = new Fraction(x.getNumer() + numer, denom);
} else {
denom = this.getDenom() * x.getDenom();
numer = this.getNumer() * x.getDenom() + x.getNumer()
* this.getDenom();
return new Fraction(numer, denom);
}
return answer;
}
Fraction subtract(Fraction x) {
Fraction answer;
if (x.getDenom() == denom) {
answer = new Fraction(x.getNumer() - numer, denom);
} else {
denom = this.getDenom() * x.getDenom();
numer = this.getNumer() * x.getDenom() - x.getNumer()
* this.getDenom();
answer = new Fraction(numer, denom);
}
return answer;
}
Fraction mult(Fraction x) {
Fraction answer;
denom = this.getDenom() * x.getDenom();
numer = this.getNumer() * x.getNumer();
answer = new Fraction(numer, denom);
return answer;
}
Fraction div(Fraction x) {
Fraction answer;
denom = this.getDenom() * x.getNumer();
numer = this.getNumer() * x.getDenom();
answer = new Fraction(numer, denom);
return answer;
}
当我输入 2 个分数时,它会返回一个分数,但这不是正确的答案。我究竟做错了什么?
更新
如果我使用小分数,例如 1/2 和 3/4,它仍然会给我错误的答案。对于加法,它打印出 7/2、减法 1/2 和除法 3/1。所以我认为这与成为一个int
或一个float
数字没有任何关系。