首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#数学计算器

C#数学计算器
EN

Stack Overflow用户
提问于 2010-05-18 16:22:34
回答 7查看 35.6K关注 0票数 26

可能的重复: 在.NET中有字符串数学评估器吗? 使用C#将字符串表达式转换为整数值 数学表达式求值的最佳最短方法 (4+2)“产量int 18

是否有一种方法来计算像(2-3/4*12)这样的数学表达式?

http://www.c-sharpcorner.com/uploadfile/mgold/codedomcalculator08082005003253am/codedomcalculator.aspx

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-05-18 16:24:56

DataTable有一个允许您编写以下内容的计算方法:

代码语言:javascript
运行
复制
var result = new DataTable().Compute("2-3/4*12", null);

请注意,这仅限于简单的数学表达式。

其他选项包括在DLR中使用动态语言,如IronPython和IronRuby。退房这个职位

代码语言:javascript
运行
复制
var engine = new IronPython.Hosting.PythonEngine();
double result = pythonEngine.EvaluateAs<double>("2-3/4*12");

您也可以检查基于NCalc的GitHub库

票数 69
EN

Stack Overflow用户

发布于 2010-05-18 16:39:34

有一些有趣的选择可供您选择。

  1. NCalc -A C# 使用ANTLR构建的Lexer解析器.这将解析您的文本并允许您为参数/变量分配值。解释器是C#,所以您不必在应用程序域中加载其他程序集,等等。
  2. 金特 --一个基于C#的Javascript解释器,由ECalc的同一作者使用ANTLR创建语法。这是目前的测试版,但很好的计算和功能。
  3. CS-Script.Net -来自网站:"CS-Script是一个基于CLR (公共语言运行时)的脚本系统,它使用符合ECMA的C#作为编程语言。CS-Script目前针对的是微软的CLR实现(.NET 2.0/3.0/3.5),对Mono的支持有限。“在内存和单独的应用程序域中加载脚本和创建程序集。它非常健壮,我在生产中使用它来编写嵌入式脚本。
票数 8
EN

Stack Overflow用户

发布于 2010-05-18 16:29:08

查看Fast(快速轻量级表达式评估器)- http://flee.codeplex.com/

Flee是.NET框架的表达式解析器和计算器。它允许您在运行时计算字符串表达式的值,例如sqrt(a^2 + b^2)。它使用自定义编译器、强类型表达式语言和轻量级编码元将表达式直接编译为IL。这意味着表达式评估是非常快速和有效的。尝试这个演示,它允许您根据表达式生成图像,然后自己查看。

它是免费和快速的,我已经在几个项目中使用了它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2859111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档