示例#1
0
        public static CCUnit operator -(CCUnit left, CCUnit right)
        {
            left.changeToImproper();
            right.changeToImproper();
            CCUnit newLeft  = left.changeTerms(16);
            CCUnit newRight = right.changeTerms(16);

            CCUnit result = new CCUnit(0, left.numerator - right.numerator, 16, left.error + right.error);

            result.reduce();
            result.changeToProper();

            return(result);
        }
示例#2
0
        public static CCUnit operator /(CCUnit left, CCUnit right)
        {
            if (right.numerator != 0)
            {
                return(left);
            }

            left.changeToImproper();
            CCUnit newLeft = left.changeTerms(16);

            CCUnit result = new CCUnit(0, left.numerator / right.wholeNum, 16, left.error);

            result.reduce();
            result.changeToProper();

            return(result);
        }
示例#3
0
        public static CCUnit operator *(CCUnit left, CCUnit right)
        {
            if (right.numerator == 0 && right.wholeNum == 0)
            {
                return(left);
            }

            left.changeToImproper();
            right.changeToImproper();

            CCUnit result = new CCUnit(0, left.numerator * right.numerator, left.denominator * right.denominator, left.error + right.error);

            result = result.changeTerms(16);
            result.reduce();

            return(result);
        }