我使用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.
谢谢.
因为它是这样做的:
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)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |