public void Compute() { switch (currentOp) { case Operation.Add: right = left + right; left = null; break; case Operation.Sub: right = right - left; left = null; break; case Operation.Mul: right = left * right; left = null; break; case Operation.Div: if (left == 0) { CalculationError?.Invoke(this, "Division by 0!"); return; } right = right / left; left = null; break; } DidUpdateValue?.Invoke(this, right.Value, precision); }
public void Compute() { if (!(left.HasValue && currentOp.HasValue)) { return; } switch (currentOp) { case Operation.Add: right = right + left; break; case Operation.Sub: right = right - left; break; case Operation.Mul: right = right * left; break; case Operation.Div: if (left == 0) { CalculationError?.Invoke(this, "Division by 0!"); return; } right = right / left; break; } DidUpdateValue?.Invoke(this, right.Value, precision); left = 0; currentOp = null; }
public int Divide(int x, int y) { if (0 == y) { var error = new CalculationError("Divide", "被除数y不能为零!"); throw new FaultException <CalculationError>(error, error.Message); } return(x / y); }
public void Compute() { switch (currentOp) { case Operation.Add: right = left + right; left = null; break; case Operation.Sub: right -= left; left = null; break; case Operation.Mul: right = left * right; left = null; break; case Operation.Div: if (left == 0) { CalculationError?.Invoke(this, "Division by 0!"); return; } right /= left; left = null; break; case Operation.Pow: right *= right; left = null; break; case Operation.Sqrt: right = Math.Sqrt((double)right); left = null; break; case Operation.Drob: right = 1 / right; left = null; break; case Operation.Sin: right = Math.Sin((double)right); left = null; break; case Operation.Cos: right = Math.Cos((double)right); left = null; break; } DidUpdateValue?.Invoke(this, right.Value, precision); }
public void Compute() { switch (currentOp) { case Operation.Add: right = left + right; left = null; precision = 0; decimalPoint = false; break; case Operation.Sub: right = right - left; left = null; precision = 0; decimalPoint = false; break; case Operation.Mul: right = left * right; left = null; precision = 0; decimalPoint = false; break; case Operation.Div: if (left == 0) { CalculationError?.Invoke(this, "Division by 0!"); return; } right = right / left; left = null; precision = 0; decimalPoint = false; break; case Operation.Pow: right = Math.Pow((double)right, (double)left); left = null; precision = 0; decimalPoint = false; break; default: currentOp = null; precision = 0; decimalPoint = false; return; } DidUpdateValue?.Invoke(this, right.Value, precision); }
public void Compute() { switch (currentOp) { case Operation.Add: right = left + right; left = null; break; case Operation.Sub: right = right - left; left = null; break; case Operation.Mul: right = left * right; left = null; break; case Operation.Div: if (left == 0) { CalculationError?.Invoke(this, "Деление на 0!"); return; } right = right / left; left = null; break; case Operation.Pow: right = Math.Pow((double)right, (double)left); left = null; break; } left = right; DidUpdateValue?.Invoke(this, right.Value, precision); right = null; currentOp = null; }
public void Compute() { switch (currentOp) { case Operation.Add: right = left + right; left = null; break; case Operation.Sub: right = right - left; left = null; break; case Operation.Mul: right = left * right; left = null; break; case Operation.Div: if (left == 0) { CalculationError?.Invoke(this, "Division by 0!"); return; } right = right / left; left = null; break; case Operation.Mod: if (left == 0) { CalculationError?.Invoke(this, "Division by 0!"); return; } right = right % left; left = null; break; case Operation.Sqrt: if (right < 0) { CalculationError?.Invoke(this, "No"); return; } else { right = Math.Sqrt(right.Value); } left = null; break; case Operation.Sqr: right = Math.Pow(right.Value, 2); left = null; break; case Operation.Ln: if (right <= 0) { CalculationError?.Invoke(this, "No"); return; } right = Math.Log(right.Value); left = null; break; //case Operation.Log10: // if (right <= 0) // { // CalculationError?.Invoke(this, "No"); // return; // } // right = Math.Log10(right.Value); // left = null; // break; case Operation.Pow: right = Math.Pow(right.Value, left.Value); left = null; break; } DidUpdateValue?.Invoke(this, right.Value, precision); precision = 0; decimalPoint = false; }