分数の足し算、引き算、割り算のメソッドを取得するのに問題があります。乗算部分は既にありますが、加算時に正しい出力を取得するのに問題があります。私が間違っていることを理解するのを手伝ってください。私は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
。