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

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

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

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

4

2 回答 2

1

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

于 2012-07-01T20:44:15.980 回答
0

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

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

于 2012-07-01T20:43:54.520 回答