2012-07-01 106 views
0

給定的給定字段,價格,幣種和公式,我需要閱讀的公式和替換那裏的價格和貨幣將進入,例如:驗證並執行公式?

(((Price+12,9)+((Price+12,9)*0,05)+(((Price+12,9)+((Price+12,9)*0,05))*0,029)+0,45)*Currency)+(2*Currency) 

因此,爲了使上面我做:

string formula = iFormula.Text.Replace("Price", price.ToString("n2")).Replace("Currency", currency.ToString("n2")); 

由於我想確保價格和貨幣格式正確,它們在替換之前被解析爲小數。

現在,這裏是我遇到問題,我如何確認公式是有效的,並得到它的結果?

是否有評估和計算公式的庫?

+0

有很多重複。我懶得弄清楚哪一個是最合適的,但http://stackoverflow.com/questions/355062/is-there-a-string-math-evaluator-in-net就是其中之一。 – CodesInChaos

+0

我想看看[NCalc](http://ncalc.codeplex.com/) – CodesInChaos

+0

@CodeInChaos謝謝你,檢查它,我實際上是使用不好的術語來搜索這個,所以我很難回答結果,不會讓我得到一個好的答案。 – Guapo

回答

1

開源庫Vici CoreVici Project的一部分)包含一個表達式解析器,它允許您在運行時解析和計算表達式。它是開源的。

+0

謝謝,我會去檢查一下。 – Guapo

0

.NET BCL中沒有像Javascript的eval這樣的函數。你可以在C#中創建一個包含所需功能(很簡單)的文件,編譯它(查看微軟的howto的說明),運行獲得的可執行文件並獲取結果。編譯錯誤意味着公式錯誤,您將從編譯步驟中獲得錯誤消息和位置。