Joe*_*orn 11
我强烈建议不要在特定的数学评估器上选择现有的通用表达式求值程序.这样做的原因是表达式评估者不仅限于数学.一个聪明的人可以使用它在框架中创建任何类型的实例并调用该类型的任何方法,这将允许他做一些明显不受欢迎的事情.例如:new System.Net.WebClient().DownloadFile("illegalchildpornurl", "C:\openme.gif")在大多数情况下会评估得很好,并且做到它听起来会是这样(并且同时让你成为重罪犯).
这并不意味着不要寻找已经写好的东西.这只是意味着要小心.你想要一个做数学,只做数学的人.已经存在的大部分内容都不那么挑剔.
我最近使用的是mXparser,它是一个数学解析器库.它为您提供了很多灵活性,例如变量,函数,常量,运算符.您将在下面找到一些使用示例:
例1 - 简单的公式
Expression e = new Expression("1 + pi");
double v = e.calculate();
Run Code Online (Sandbox Code Playgroud)
示例2 - 包含变量,函数等的公式
Argument x = new Argument("x = 2");
Constant a = new Constant("a = sin(10)");
Function f = new Function("f(t) = t^2");
Expression e = new Expression("2*x + a - f(10)", x, a, f);
double v = e.calculate();
Run Code Online (Sandbox Code Playgroud)
https://mxparser.codeplex.com/
最好的祝福
小智 5
您可以尝试使用DataTable.Compute.
一个相关的是DataColumn.Expression.
另请查看:在jb中使用像Eval这样的vb.net中的数学运算
注意:我自己没有使用过这些.
| 归档时间: |
|
| 查看次数: |
31991 次 |
| 最近记录: |