Beispiel #1
0
        // 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));
        }
Beispiel #2
0
        // 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;
        }