Your greatestCommonFactor
function was giving me wrong results. Try testing with this one (this is using Euclid's method):
//finds the greatest common factor, used in simplifying
public int greatestCommonFactor(int num, int den)
{
if(den == 0){
return num;
}
return greatestCommonFactor(den, num % den);
}
Also you don't set numerator
or denominator
to their simplified form:
public RationalNumber(int num, int den)
{
//setNumerator(num);
//setDenominator(den);
int gcf= greatestCommonFactor(num, den);
setNumerator(num/gcf);
setDenominator(den/gcf);
}