3
私はJava OOPに関する私の割り当てのためのコードを書いています。私は2つの分数で操作を行う必要がありますが、出力が間違っていて、ほとんどの場合、なぜか分かりません。私は単純化して問題があると考えているので、結果は単純化せずに正しいです 2つの分数0/8と6/14の減算が-3/7になるはずですが、出力は0/1です 助けてくれてありがとう!ここ はコードです:2つの小数点での操作
class Fraction {
private int numer, denom;
public Fraction(int numerator, int denominator) {
numer = numerator;
denom = denominator;
}
private int euclidGcd(int a, int b) {
int remainder;
while (b > 0) {
remainder = a % b;
a = b;
b = remainder;
}
return a;
}
private Fraction simplify() {
int gcd = euclidGcd(numer, denom);
this.numer = this.numer/gcd;
this.denom = this.denom/gcd;
Fraction result = new Fraction(numer, denom);
return result;
}
public Fraction add(Fraction another) {
int b = this.denom * another.denom;
int a = (b/this.denom) * this.numer + (b/another.denom) * another.numer;
Fraction result = new Fraction(a, b);
result.simplify();
return result;
}
public Fraction minus(Fraction another) {
int b = this.denom * another.denom;
int a = (b/this.denom) * this.numer - (b/another.denom) * another.numer;
Fraction result = new Fraction(a, b); // stub
result.simplify();
return result;
}
public Fraction times(Fraction another) {
int a = this.numer * another.numer;
int b = this.denom * another.denom;
Fraction result = new Fraction(a, b); // stub
result.simplify();
return result;
}
public Fraction divide(Fraction another) {
int a = this.numer * another.denom;
int b = this.denom * another.numer;
Fraction result = new Fraction(a, b); // stub
result.simplify();
return result;
}
public String toString() {
return numer + "/" + denom;
}
最も簡単な方法は、入力を取得し、それを使用して行ごとに行くことです。このためにデバッガを使用することができます。 – Admit