Пример #1
0
        /// <summary>
        /// Returns the greatest common denominator between value1 and value2
        /// </summary>
        /// <param name="value1">Value 1</param>
        /// <param name="value2">Value 2</param>
        /// <returns>The greatest common denominator if one exists</returns>
        public static int GreatestCommonDenominator(this int value1, int value2)
        {
            if (value1 == int.MinValue)
            {
                throw new ArgumentOutOfRangeException(nameof(value1), Properties.Resources.ValueCanNotBeMin);
            }

            if (value2 == int.MinValue)
            {
                throw new ArgumentOutOfRangeException(nameof(value2), Properties.Resources.ValueCanNotBeMin);
            }

            value1 = value1.Absolute();
            value2 = value2.Absolute();
            while (value1 != 0 && value2 != 0)
            {
                if (value1 > value2)
                {
                    value1 %= value2;
                }
                else
                {
                    value2 %= value1;
                }
            }
            return(value1 == 0 ? value2 : value1);
        }
Пример #2
0
        /// <summary>
        /// Shifts the decimal point. <para>If negative, shift left; otherwise, shift right.</para>
        /// </summary>
        /// <param name="value"></param>
        /// <param name="shifts"></param>
        /// <returns></returns>
        public static double Shift(this double value, int shifts = 1)
        {
            var LeftOrRight = shifts < 0;

            for (var i = 0; i < shifts.Absolute(); i++)
            {
                value = LeftOrRight ? value / 10 : value * 10;
            }

            return(value);
        }
 /// <summary>
 /// Returns the greatest common denominator between value1 and value2
 /// </summary>
 /// <param name="Value1">Value 1</param>
 /// <param name="Value2">Value 2</param>
 /// <returns>The greatest common denominator if one exists</returns>
 public static int GreatestCommonDenominator(this int Value1, int Value2)
 {
     Value1 = Value1.Absolute();
     Value2 = Value2.Absolute();
     while (Value1 != 0 && Value2 != 0)
     {
         if (Value1 > Value2)
         {
             Value1 %= Value2;
         }
         else
         {
             Value2 %= Value1;
         }
     }
     return(Value1 == 0 ? Value2 : Value1);
 }
Пример #4
0
 /// <summary>
 /// Returns the greatest common denominator between value1 and value2
 /// </summary>
 /// <param name="Value1">Value 1</param>
 /// <param name="Value2">Value 2</param>
 /// <returns>The greatest common denominator if one exists</returns>
 public static int GreatestCommonDenominator(this int Value1, int Value2)
 {
     Contract.Requires <ArgumentOutOfRangeException>(Value1 != Int32.MinValue, "Value1 can not be Int32.MinValue");
     Contract.Requires <ArgumentOutOfRangeException>(Value2 != Int32.MinValue, "Value2 can not be Int32.MinValue");
     Value1 = Value1.Absolute();
     Value2 = Value2.Absolute();
     while (Value1 != 0 && Value2 != 0)
     {
         if (Value1 > Value2)
         {
             Value1 %= Value2;
         }
         else
         {
             Value2 %= Value1;
         }
     }
     return(Value1 == 0 ? Value2 : Value1);
 }