3 回答

TA貢獻(xiàn)1898條經(jīng)驗(yàn) 獲得超8個(gè)贊
DataTable有一個(gè)Compute方法,可讓您編寫(xiě)以下代碼:
var result = new DataTable().Compute("2-3/4*12", null);
請(qǐng)注意,這僅限于簡(jiǎn)單的數(shù)學(xué)表達(dá)式。
其他選擇包括在DLR中使用動(dòng)態(tài)語(yǔ)言,例如IronPython和IronRuby。查看此帖子:
var engine = new IronPython.Hosting.PythonEngine();
double result = pythonEngine.EvaluateAs<double>("2-3/4*12");
您也可以在GitHub上檢查NCalc庫(kù)。

TA貢獻(xiàn)2065條經(jīng)驗(yàn) 獲得超14個(gè)贊
查看FLEE(快速輕量表達(dá)計(jì)算器)-http: //flee.codeplex.com/
Flee是.NET框架的表達(dá)式解析器和評(píng)估器。它允許您在運(yùn)行時(shí)計(jì)算諸如sqrt(a ^ 2 + b ^ 2)之類(lèi)的字符串表達(dá)式的值。它使用自定義編譯器,強(qiáng)類(lèi)型表達(dá)式語(yǔ)言和輕量級(jí)代碼生成器將表達(dá)式直接編譯為IL。這意味著表達(dá)評(píng)估非??焖俸陀行?。試用該演示,該演示使您可以基于表達(dá)式生成圖像并親自查看。
它是免費(fèi)且快速的,我已經(jīng)在幾個(gè)項(xiàng)目中使用了它。
- 3 回答
- 0 關(guān)注
- 640 瀏覽
添加回答
舉報(bào)