示例#1
0
        public void TransformInput(CalculatorTransformation t)
        {
            input = input ?? 0;

            switch (t)
            {
            case CalculatorTransformation.Negate:
                input = -input;
                break;
            }
            DidUpdateValue?.Invoke(this, input.Value, fractionDigits);
        }
示例#2
0
        public void TransformInput(CalculatorTransformation t)
        {
            input = input ?? 0;

            switch (t)
            {
            case CalculatorTransformation.Negate:
                input = -input;
                break;

            case CalculatorTransformation.Percent:
                input /= 100;
                break;

            case CalculatorTransformation.Sqr:
                input *= input;
                break;

            case CalculatorTransformation.Sqrt:
                if (input.HasValue && input.Value >= 0)
                {
                    input = Math.Sqrt(input ?? 0);
                }
                else
                {
                    ComputationError.Invoke(this, "Negative Square");
                }
                break;

            case CalculatorTransformation.Inverse:
                if (input.HasValue && input.Value != 0)
                {
                    input = 1 / input;
                }
                else
                {
                    ComputationError.Invoke(this, "Division by Zero");
                }
                break;
            }

            DidUpdateValue?.Invoke(this, input.Value, fractionDigits);
        }