/// <summary> /// Multiplication /// </summary> /// <param name="First">First fraction</param> /// <param name="Second">Second fraction</param> /// <returns>The resulting fraction</returns> public static Fraction operator *(Fraction First, Fraction Second) { Contract.Requires <ArgumentNullException>(First != null, "First"); Contract.Requires <ArgumentNullException>(Second != null, "Second"); var Result = new Fraction(First.Numerator * Second.Numerator, First.Denominator * Second.Denominator); Result.Reduce(); return(Result); }
/// <summary> /// Subtraction /// </summary> /// <param name="First">First fraction</param> /// <param name="Second">Second fraction</param> /// <returns>The subtracted fraction</returns> public static Fraction operator -(Fraction First, Fraction Second) { Contract.Requires<ArgumentNullException>(First != null, "First"); Contract.Requires<ArgumentNullException>(Second != null, "Second"); var Value1 = new Fraction(First.Numerator * (int)Second.Denominator, First.Denominator * Second.Denominator); var Value2 = new Fraction(Second.Numerator * (int)First.Denominator, Second.Denominator * First.Denominator); var Result = new Fraction(Value1.Numerator - Value2.Numerator, Value1.Denominator); Result.Reduce(); return Result; }