验证并执行公式?

时间:2012-07-01 20:40:07

标签: c# winforms math .net-4.0 formula

给定的字段是,价格,货币和公式,我需要阅读公式并替换价格和货币的位置,例如:

(((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"));

由于我想确保价格和货币格式正确,因此在替换之前将它们解析为小数。

现在这里是我遇到问题的地方,如何确认公式有效,并获得结果?

是否有评估和计算公式的库?

2 个答案:

答案 0 :(得分:1)

开源库 Vici Core Vici Project的一部分)包含一个表达式解析器,允许您在运行时解析和计算表达式。它是开源的。

答案 1 :(得分:0)

在.NET BCL中没有类似Javascript的eval的功能。

但是,您可以在C#中创建包含所需函数的文件(很简单),编译它(查看Microsoft的howto获取说明),运行获取的可执行文件并获取结果。编译错误意味着公式错误,您将从编译步骤中获得错误消息和位置。