繁体   English   中英

C#,如何计算操作字符串

[英]C#, How to compute an operation string

我有这样的字符串

str = "4975 + 10 * (LOG(250.6)) - 321.2"

我想计算此操作的结果。 有什么办法吗?

// my operation just includes some of operators (,), +, -, *, / , ., 0-9, LOG
// '.' is used for double number

我相信这就是您要寻找的。

使用此库将帮助您以字符串格式执行数学运算

添加这个包

安装包DynamicExpresso.Core

代码示例

public static void Main(string[] args)
        {
            var interpreter = new Interpreter();
            var result = interpreter.Eval("4975 + 10 * (LOG(250.6)) - 321.2".Replace("LOG", "Math.Log"));

            Console.WriteLine("result=> " + result);
            Console.ReadKey();
        }

结果=> 4709.03858042462

lib的链接https://github.com/davideicardi/DynamicExpresso

在这里也回答:

https://stackoverflow.com/a/2859130/1043824

试试DataTable.Compute

我周围没有.net框,因此无法确认它是否可以log ,但是我已将其用于长代数表达式。

基本上是这样的:

DataTable dt = new DataTable();
var ans = dt.compute("5 + (7 - 9) / 3");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM