C# 验证并执行公式?

C# 验证并执行公式?,c#,winforms,math,.net-4.0,formula,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("Cur

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

(((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"));
因为我想确保价格和货币的格式正确,所以在替换之前,它们被解析为小数

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


是否有计算公式的库?

在.NET BCL中没有类似Javascript的
eval
的函数


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

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

有许多重复项。我太懒了,不知道哪一个最合适,但我是其中之一。我会调查@CodeInChaos谢谢你,检查一下,我实际上用了不好的词来搜索这个,所以我的问题结果不好,没有给我一个好的答案。谢谢,我现在就去检查一下。