65.9K
CodeProject 正在变化。 阅读更多。
Home

MathParser - 数学公式解析器

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.82/5 (33投票s)

2008年1月20日

CPOL
viewsIcon

135737

downloadIcon

6558

MathParser 是一个类,可以计算以字符串形式给出的数学运算结果,例如 "3+5/2-3*(1+3)"。它还可以计算参数化公式的结果,例如 3A+5B/2C。计算按照运算顺序(/、*、-、+)和括号规则进行。

引言

MathParser 是一个类,可以计算以 string 形式给出的数学运算结果,例如 "3+5/2-3*(1+3)"。它还可以计算参数化公式的结果,例如 3A+5B/2C。计算按照运算顺序(/、*、-、+)和括号规则进行。在某些项目中,用户希望动态创建公式。这是一种计算这些类型公式值的有用方法。

背景

这段代码的基本思想是正确解析 string ,将值转换为十进制数,并使用运算符进行计算。

Using the Code

使用这段代码非常简单。

对于基本用法,开发人员应该通过传递公式来调用 calculate 方法。

MathFunctions.MathParser mp = new MathFunctions.MathParser();
decimal result = mp.Calculate("5/(1-2)+(3+(2/1))");

对于参数化用法,开发人员应该在调用 calculate 方法之前声明参数,然后按照如下方式传递公式调用该方法

MathFunctions.MathParser mp = new MathFunctions.MathParser();
mp.Parameters.Add(MathFunctions.Parameters.A, 5);
mp.Parameters.Add(MathFunctions.Parameters.B, 2);
mp.Parameters.Add(MathFunctions.Parameters.C, 1);
mp.Parameters.Add(MathFunctions.Parameters.D, 3);
decimal result = mp.Calculate("3D-2B/C+(A-B)");

历史

  • 2007年1月20日:初始发布
    如有任何错误报告和建议,请随时通过 oztamer@hotmail.com 与我联系。
© . All rights reserved.