我不理解数学结果1 + 2*3*+ 4*5 = 121

Pet*_* M. 0 javascript c#

我使用C#中的代码

  public double CalculateExpression()
    {
        double result = -1;

        var javascriptLangualeType = Type.GetTypeFromCLSID(Guid.Parse("0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC"));
        dynamic obj = Activator.CreateInstance(javascriptLangualeType, false);
        obj.Language = "javascript";

        try
        {
            result = obj.Eval(Expression);
            Result = result.ToString();
        }
        catch (Exception)
        {

            Result = "ERROR";
        }

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

当我想评估这个表达式时(里面是'*'和'+'):

var expresion = "1+2*3*+4*5";
Run Code Online (Sandbox Code Playgroud)

我预计我会得到异常r任何其他类型的错误,但结果是121.有人能告诉我为什么这个表达式被认为是有效的?

我在C#脚本中尝试了这个表达式,我得到了结果121.

谢谢.

Rob*_*Rob 6

因为它是这样做的:

1 + (2 * 3 * (+4) * 5)
Run Code Online (Sandbox Code Playgroud)

由于我们通常不使用+4以表示,因此使用减号更清楚4:

1+2*3*-4*5
Run Code Online (Sandbox Code Playgroud)

扩展到

1 + (2 * 3 * (-4) * 5)
Run Code Online (Sandbox Code Playgroud)