Ejemplo n.º 1
0
        /// <summary>
        /// Adds two fractions
        /// </summary>
        /// <param name="b"></param>
        /// <returns></returns>
        public Fraction Add(Fraction b)
        {
            if (b == null)
            {
                throw new ArgumentNullException("One of the operand or fraction cannot be null.", "b");
            }
            if (Denominator == 0 || b.Denominator == 0)
            {
                throw new ArgumentException($"One of the denominators is invalid.Denominator:{Denominator} or {b.Denominator}");
            }

            int commonDenominator = LCD(Denominator, b.Denominator);

            Fraction commonA = Convert(commonDenominator);
            Fraction commonB = b.Convert(commonDenominator);

            Fraction sum = new Fraction
            {
                Numerator   = commonA.Numerator + commonB.Numerator,
                Denominator = commonDenominator
            };

            return(sum.Reduce());
        }