Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#/.net中计算数学表达式_C#_.net_Parsing_Expression - Fatal编程技术网

如何在c#/.net中计算数学表达式

如何在c#/.net中计算数学表达式,c#,.net,parsing,expression,C#,.net,Parsing,Expression,可能重复: 我只是想知道C#/.NET中是否有内置函数,以便在运行时解析和计算数学表达式 我们的用户应该能够将表达式写入文本文件,如 bmi = weight / (height * height) 然后程序应该能够计算这些公式 对于表达式,我们至少需要以下功能: 基本算术运算+-*/ 括号 用于计算平方根和自然对数的函数,如sqrt(),ln() 使用预定义变量。变量将由我们的程序填写,然后用户应该能够使用它们进行计算 如果.NET中没有这样的东西,您可以推荐一个库吗 嗯,我可以自己写

可能重复:

我只是想知道C#/.NET中是否有内置函数,以便在运行时解析和计算数学表达式

我们的用户应该能够将表达式写入文本文件,如

bmi = weight / (height * height)
然后程序应该能够计算这些公式

对于表达式,我们至少需要以下功能:

  • 基本算术运算+-*/
  • 括号
  • 用于计算平方根和自然对数的函数,如sqrt(),ln()
  • 使用预定义变量。变量将由我们的程序填写,然后用户应该能够使用它们进行计算
如果.NET中没有这样的东西,您可以推荐一个库吗


嗯,我可以自己写一个表达式解析器-我知道所有关于它的理论,这甚至是大学里最伟大的事情之一:-)-但是,它仍然感觉像是在重新发明轮子。

在BCL中你能得到的最接近的是类,尽管它将具有解析功能


NET有许多数学表达式解析器,因此您不需要重新发明轮子。

我建议将标题改为“用于评估的库…”,因为这并不是问如何实现这一目标。(+1)同意,不要重新发明轮子。开发人员的工作是提供解决方案,而不是构建酷炫的东西(不一定是同一件事!)@PatrickPitre——尽管一个快乐的开发人员最终会同时做这两件事;)我使用过NCalc(第一个链接),它非常容易使用。@Oded的确,正是这些难得的时刻让这一切变得值得!