2012-07-01 85 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的说明),运行获得的可执行文件并获取结果。编译错误意味着公式错误,您将从编译步骤中获得错误消息和位置。