// Return a + b. public static Fraction operator +(Fraction a, Fraction b) { // Get the denominators' greatest common divisor. long gcd_ab = MathStuff.GCD(a.Denominator, b.Denominator); long numer = a.Numerator * (b.Denominator / gcd_ab) + b.Numerator * (a.Denominator / gcd_ab); long denom = a.Denominator * (b.Denominator / gcd_ab); return(new Fraction(numer, denom)); }
// Simplify the fraction. private void Simplify() { // Simplify the sign. if (Denominator < 0) { Numerator = -Numerator; Denominator = -Denominator; } // Factor out the greatest common divisor of the // numerator and the denominator. long gcd_ab = MathStuff.GCD(Numerator, Denominator); Numerator = Numerator / gcd_ab; Denominator = Denominator / gcd_ab; }