public static MathExpression Parse(string input, MathFormat inputFormat) { if (input.Contains("+")) { return(new AddExpression(input, inputFormat)); } if (input.Contains("/")) { return(new DivideExpression(input, inputFormat)); } if (input.Contains("*")) { return(new MultiplyExpression(input, inputFormat)); } if (input.Contains("-")) { return(new SubtractExpression(input, inputFormat)); } if (input.Contains("√")) { return(new RootExpression(input, inputFormat)); } if (input.Contains("exp")) { return(new ExponentExpression(input, inputFormat)); } return(new UnaryExpression(input, inputFormat)); }
public UnaryExpression(object value, MathFormat inputFormat = MathFormat.Decimal) { InputString = Convert.ToString(value); InputFormat = inputFormat; Result = value; if (value is string) { if (inputFormat == MathFormat.Binary) { Result = Convert.ToInt32((string)value, 2); } else if (inputFormat == MathFormat.Octal) { Result = Convert.ToInt32((string)value, 8); } else if (inputFormat == MathFormat.Hexadecimal) { Result = Convert.ToInt32((string)value, 16); } else { Result = Convert.ToDouble((string)value); } } else if (value is double) { Result = Math.Round((double)value, 10); } }
public RootExpression(string input, MathFormat inputFormat) : base(input, inputFormat) { }
public SubtractExpression(string input, MathFormat inputFormat) : base(input, inputFormat) { }
public DivideExpression(string input, MathFormat inputFormat) : base(input, inputFormat) { }
protected BinaryExpression(string input, MathFormat inputFormat) { InputString = input; InputFormat = inputFormat; }
protected UnaryExpression EvaluateToExpressionResult(string expression, MathFormat inputFormat = MathFormat.Decimal) { return(new SimpleCalculator().Evaluate(expression, inputFormat)); }
public MathExpression Parse(string input, MathFormat inputFormat = MathFormat.Decimal) { return(MathExpression.Parse(input, inputFormat)); }
public UnaryExpression Evaluate(string input, MathFormat inputFormat = MathFormat.Decimal) { MathExpression expression = Parse(input, inputFormat); return(expression.Evaluate()); }
public MultiplyExpression(string input, MathFormat inputFormat) : base(input, inputFormat) { }