我使用 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;
}
当我想计算这个表达式时(里面是 '*' 和 '+' ):
var expresion = "1+2*3*+4*5";
我预计我会遇到任何其他类型的错误,但结果是 121。有人可以告诉我为什么这个表达式被认为是有效的吗?
我在 C# 脚本中尝试了这个表达式,并且得到了结果 121。
谢谢。
最佳答案
因为它正在这样做:
1 + (2 * 3 * (+4) * 5)
使用减号会更清楚,因为我们通常不使用 +4
来表示 4
:
1+2*3*-4*5
扩展为
1 + (2 * 3 * (-4) * 5)
关于javascript - 我不明白数学结果 1+2*3*+4*5 = 121,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33469543/