LitDev.LDMath.Evaluate2 C# (CSharp) Method

Evaluate2() public static method

Evaluate a string expression to a number (if possible). An alternative to Evaluate that behaves nicely with the TextWindow.
public static Evaluate2 ( Primitive expression ) : Primitive
expression Primitive The expression to evaluate, e.g. "1e6 + 6/4".
return Primitive
        public static Primitive Evaluate2(Primitive expression)
        {
            try
            {
                ParameterExpression pe = Expression.Parameter(typeof(string), "IntegerAsReal");
                ExpressionParser parser = new ExpressionParser(new ParameterExpression[] { pe }, expression, null);
                LambdaExpression expr = Expression.Lambda(parser.Parse(typeof(double)), null);
                var del = (Func<double>)expr.Compile();
                return del();
            }
            catch (Exception ex)
            {
                Utilities.OnError(Utilities.GetCurrentMethod(), ex);
                return "";
            }
        }