我不知道数学结果1+2*3*+4*5=121
本文关键字:我不知道 结果 | 更新日期: 2023-09-27 18:20:19
我使用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;
}
当我想评估这个表达式时(里面是"*"answers"+"):
var expresion = "1+2*3*+4*5";
我本以为我会得到异常r任何其他类型的错误,但结果是121。有人能告诉我为什么这个表达被认为是有效的吗?
我在C#脚本中尝试了这个表达式,结果是121。
谢谢。
因为它这样做:
1 + (2 * 3 * (+4) * 5)
减号更清楚,因为我们通常不使用+4
来表示4
:
1+2*3*-4*5
扩展到
1 + (2 * 3 * (-4) * 5)
从右到左,*优先于+。
因此(1)+(2*(3*(+(4*5)))=121
从右到左阅读会有所帮助。+符号也被视为+20或"20"。它不是运算符,而是值(4*5)上的正/负号