public void TransformInput(CalculatorTransformation t) { input = input ?? 0; switch (t) { case CalculatorTransformation.Negate: input = -input; break; } DidUpdateValue?.Invoke(this, input.Value, fractionDigits); }
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); }