我想评估用户在文本框中输入的数学表达式。我已经这样做了迄今解决数学表达式
string equation, finalString;
equation = textBox1.Text;
StringBuilder stringEvaluate = new StringBuilder(equation);
stringEvaluate.Replace("sin", "math.sin");
stringEvaluate.Replace("cos", "math.cos");
stringEvaluate.Replace("tan", "math.tan");
stringEvaluate.Replace("log", "math.log10");
stringEvaluate.Replace("e^", "math.exp");
finalString = stringEvaluate.ToString();
StringBuilder replaceI = new StringBuilder(finalString);
replaceI.Replace("x", "i");
double a;
for (int i = 0; i<5 ; i++)
{
a = double.Parse(finalStringI);
if(a<0)
break;
}
当我运行该程序它给出了一个错误"Input string was not in a correct format."
并突出a=double.Parse(finalStringI);
我使用预先定义的表达式A = I * math.log10(I)-1.2和它作品,但是当我在文本框中输入相同的东西时,它不会。 我做了一些搜索,它提出了一些在运行时编译代码的方法。
任何想法如何做到这一点? 我是一个绝对的初学者。 感谢:)
有没有在框架中任一公用事业你正在尝试做的,以评估任意表达式字符串。实际解析字符串并编写逻辑来执行评估会更好。正如你现在所做的那样,没有简单的方法去做你想做的事情。 –
@JeffMercado:说“框架中没有东西”总是很危险,因为它很容易出错。碰巧你是。 –