我想評估用戶在文本框中輸入的數學表達式。我已經這樣做了迄今解決數學表達式
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:說「框架中沒有東西」總是很危險,因爲它很容易出錯。碰巧你是。 –