相关疑难解决方法(0)

评估字符串"3*(4 + 2)"产生int 18

.NET框架是否有一个函数可以计算字符串中包含的数字表达式并返回结果?铁:

string mystring = "3*(2+4)";
int result = EvaluateExpression(mystring);
Console.Writeln(result); // Outputs 18
Run Code Online (Sandbox Code Playgroud)

是否有标准框架功能,您可以用我的EvaluateExpression方法替换?

c# string math numeric evaluate

95
推荐指数
9
解决办法
16万
查看次数

.NET中是否有字符串数学计算器?

如果我有一个带有有效数学表达式的字符串,例如:

String s = "1 + 2 * 7";
Run Code Online (Sandbox Code Playgroud)

在.NET中是否有内置的库/函数来解析和评估该表达式并返回结果?在这种情况下15.

.net c#

81
推荐指数
9
解决办法
6万
查看次数

如何动态评估C#表达式?

我想做相当于:

object result = Eval("1 + 3");
string now    = Eval("System.DateTime.Now().ToString()") as string
Run Code Online (Sandbox Code Playgroud)

在Biri的链接之后,我得到了这个片段(修改后删除了过时的方法ICodeCompiler.CreateCompiler():

private object Eval(string sExpression)
{
    CSharpCodeProvider c = new CSharpCodeProvider();
    CompilerParameters cp = new CompilerParameters();

    cp.ReferencedAssemblies.Add("system.dll");

    cp.CompilerOptions = "/t:library";
    cp.GenerateInMemory = true;

    StringBuilder sb = new StringBuilder("");
    sb.Append("using System;\n");

    sb.Append("namespace CSCodeEvaler{ \n");
    sb.Append("public class CSCodeEvaler{ \n");
    sb.Append("public object EvalCode(){\n");
    sb.Append("return " + sExpression + "; \n");
    sb.Append("} \n");
    sb.Append("} \n");
    sb.Append("}\n");

    CompilerResults cr = c.CompileAssemblyFromSource(cp, sb.ToString());
    if (cr.Errors.Count > 0)
    {
        throw …
Run Code Online (Sandbox Code Playgroud)

c# reflection eval

49
推荐指数
3
解决办法
9万
查看次数


评估数学表达式的最佳和最短的方法

有许多算法来评估表达式,例如:

  1. 通过递归下降
  2. 调车场算法
  3. 反向波兰表示法

有没有办法用C#.net反射或其他现代.net技术评估任何数学表达式?

.net c# evaluation expression

17
推荐指数
2
解决办法
2万
查看次数

数学表达式求值程序的简单库或实现

我有一个只包含一行的文本文件,该行只包含一个数学表达式,例如12+(3.0*(4)-1)/ sqrt(121)

我的程序需要将此express表示为字符串,然后给出结果
13

是否有任何简单的方法或第三方dll/lib来实现这一目标?

评论增加:

评估一串简单的数学表达式

这里是解决方案,但许多解决方案只包含+ - /*,我需要尽可能多的运营商,如天花板方形平方根和功率()

所以这个链接可能是最好的解决方案
http://www.codeproject.com/KB/recipes/sota_expression_evaluator.aspx

c c# c++ c++11

14
推荐指数
2
解决办法
2837
查看次数

字符串计算器

嗨其他程序员,

我正在创建一个计算器 C#

我有一个math包含的字符串变量100 * 5 - 2

如何显示498控制台中的输出?

我的代码是这样的:

String math = "100 * 5 - 2"; 

Console.WriteLine(math);

Console.ReadLine(); // For Pause
Run Code Online (Sandbox Code Playgroud)

所以基本上,我的代码将给我的是字符串本身 100 * 5 - 2

但是我希望它能够给我498一个结果.

关于这一点的想法非常感谢.

谢谢

c# calculator console-application

5
推荐指数
1
解决办法
2万
查看次数

将字符串转换为可执行代码性能

我正在寻找将字符串转换为可执行代码的解决方案.我的代码非常慢,并执行4.7 seconds.有没有更快的方法呢?

字符串:"5*5"

产量:25

代码:

class Program {

    static void Main(string[] args) {
        var value = "5 * 5";
        Stopwatch sw = new Stopwatch();
        sw.Start();
        var test = Execute(value);
        sw.Stop();
        Debug.WriteLine($"Execute string at: {sw.Elapsed}");
    }

    private static object Execute(string content) {
        var codeProvider = new CSharpCodeProvider();
        var compilerParameters = new CompilerParameters {
            GenerateExecutable = false,
            GenerateInMemory = true
        };

        compilerParameters.ReferencedAssemblies.Add("system.dll");

        string sourceCode = CreateExecuteMethodTemplate(content);
        CompilerResults compilerResults = codeProvider.CompileAssemblyFromSource(compilerParameters, sourceCode);
        Assembly assembly = compilerResults.CompiledAssembly;
        Type type = assembly.GetType("Lab.Cal");
        MethodInfo …
Run Code Online (Sandbox Code Playgroud)

c# performance

5
推荐指数
1
解决办法
408
查看次数

C#将字符串转换为if条件

是否可以转换字符串

"value > 5 && value <= 10" 
Run Code Online (Sandbox Code Playgroud)

到if语句?

if (value > 5 && value <= 10)
{
   //do something
}
Run Code Online (Sandbox Code Playgroud)

我有条件存储在数据库中的字符串,所以它必须是一个动态转换

.net c#

5
推荐指数
1
解决办法
2103
查看次数

如何在C#中加减?

我是C#的新手,我正在尝试制作一个计算器.在Python(我更熟悉)中,你只需要import math写出你想要用数学做什么.

但是使用C#,这是我的代码:

using system;


namespace Calculator
{
    class MainClass
    {
        public static void Main(string[] args)
        {
             divide(2,3);
        }
        public static void add(int num01, int num02)
        {
            Console.WriteLine("The result is " + num01+num02);
            Console.ReadKey();
        }
        public static void multiply(int num01, int num02)
        {
            Console.WriteLine("The result is " + num01 * num02);
            Console.ReadKey();
        }
        public static void divide(double num01, double num02)
        {
            Console.WriteLine("The result is " + num01 / num02);
            Console.ReadKey();
        }
        public static void subtract(int num01, int num02) …
Run Code Online (Sandbox Code Playgroud)

c# math

3
推荐指数
1
解决办法
312
查看次数