.NET框架是否有一个函数可以计算字符串中包含的数字表达式并返回结果?铁:
string mystring = "3*(2+4)";
int result = EvaluateExpression(mystring);
Console.Writeln(result); // Outputs 18
Run Code Online (Sandbox Code Playgroud)
是否有标准框架功能,您可以用我的EvaluateExpression方法替换?
注意:数学表达式评估不是这个问题的焦点.我想在.NET中运行时编译和执行新代码. 话虽如此...
我想允许用户在文本框中输入任何等式,如下所示:
x = x / 2 * 0.07914
x = x^2 / 5
Run Code Online (Sandbox Code Playgroud)
并将该等式应用于传入的数据点.输入数据点由x表示,每个数据点由用户指定的等式处理.我多年前做过,但我不喜欢这个解决方案,因为它需要为每次计算解析等式的文本:
float ApplyEquation (string equation, float dataPoint)
{
// parse the equation string and figure out how to do the math
// lots of messy code here...
}
Run Code Online (Sandbox Code Playgroud)
当您处理大量数据点时,这会引入相当多的开销.我希望能够在飞行中将方程转换为函数,这样它只需要解析一次.它看起来像这样:
FunctionPointer foo = ConvertEquationToCode(equation);
....
x = foo(x); // I could then apply the equation to my incoming data like this
Run Code Online (Sandbox Code Playgroud)
函数ConvertEquationToCode将解析方程并返回指向应用适当数学的函数的指针.
该应用程序基本上是在运行时编写新代码.这可能与.NET有关吗?
可能重复:
.NET中是否有字符串数学计算器?
使用C#将字符串表达式转换为整数值
最佳和最短的方法来评估数学表达式c#evaluate
string"3*(4 + 2)"yield int 18
有没有办法以不同的方式计算像(2-3/4*12)这样的数学表达式?
我想知道是否可以编译,并运行存储的代码,而不生成exe或任何类型的其他文件,基本上从内存中运行该文件.
基本上,Main应用程序将有一些存储代码(可能会更改的代码),并且需要编译代码并执行它.没有创建任何文件.
创建文件,运行程序,然后删除文件不是一个选项.编译后的代码需要从内存中运行.
代码示例,或指针,或几乎任何东西都欢迎:)
我已经看到了使用一次性对象内联,所以很多时候开发商这里的实例.内联我的意思是:
var result = new DataTable().Compute("1 + 4 * 7", null);
Run Code Online (Sandbox Code Playgroud)
我知道该Dispose方法不会被调用,但由于没有对该对象进行引用,垃圾收集器将如何处理它?使用像这样的一次性物体是否安全?
我DataTable在我的例子中使用了一个,因为它是我找到的唯一具体例子,但我的问题一般适用于一次性物品.我不是那样亲自使用它们,我只是想知道如果它们以这种方式使用它们是否由GC处理它们.
我有一个只包含一行的文本文件,该行只包含一个数学表达式,例如12+(3.0*(4)-1)/ sqrt(121)
我的程序需要将此express表示为字符串,然后给出结果
13
是否有任何简单的方法或第三方dll/lib来实现这一目标?
评论增加:
这里是解决方案,但许多解决方案只包含+ - /*,我需要尽可能多的运营商,如天花板方形平方根和功率()
所以这个链接可能是最好的解决方案
http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx
我有一个字符串变量
string exp = "12+34+4*56+(23*45+12)2/30"
Run Code Online (Sandbox Code Playgroud)
这样做的最佳方式是什么?没有使用第三方DLL?
是否有一种简单的方法来解析表示为字符串的简单数学表达式,如(x +(2*x)/(1-x)),为x提供值,并获得结果?
我查看了几个在线示例中的VSAEngine,但是,我收到一个警告,该程序集已被弃用而不使用它.
如果它有任何差异,我使用的是.NET 4.0.
我正在寻找一个可以在C#应用程序中使用的公式解释器.它需要能够解释这样的字符串:
max(1+2, 4) * x
Run Code Online (Sandbox Code Playgroud)
我发现编写一个快速的公式解释器(codeproject.com)几乎可以满足我的需要,但它不允许具有多个参数的函数.我可以添加它的功能,但我只是想知道这样的事情是否已经存在.
谢谢
我是 C# 的初学者。我在将字符串转换为数学表达式时遇到问题。我有一个用户界面,用户可以在其中使用随机公式字段创建公式。在另一个 UI 中,用户将输入这些公式字段。
例如,第一次公式可能是,(a+b)^n而另一个公式可能是((a+b+c)^n+b)。
在我的计算用户界面中,第一次用户将为 a、b、n 提供输入,而对于第二个公式,用户将为 a、b、c、n 提供输入。任何人都可以帮助我了解如何以编程方式获得两个公式的结果吗?提前致谢
c# ×10
.net ×3
math ×3
expression ×2
formula ×2
c ×1
c#-4.0 ×1
c++ ×1
c++11 ×1
calculator ×1
compilation ×1
evaluate ×1
interpreter ×1
numeric ×1
runtime ×1
string ×1