给定的字段是,价格,货币和公式,我需要阅读公式并替换价格和货币的位置,例如:
(((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 :(得分:1)
开源库 Vici Core (Vici Project的一部分)包含一个表达式解析器,允许您在运行时解析和计算表达式。它是开源的。
答案 1 :(得分:0)
在.NET BCL中没有类似Javascript的eval
的功能。
但是,您可以在C#中创建包含所需函数的文件(很简单),编译它(查看Microsoft的howto获取说明),运行获取的可执行文件并获取结果。编译错误意味着公式错误,您将从编译步骤中获得错误消息和位置。