12,290,988 members (66,855 online)
alternative version

107.4K views
48 bookmarked
Posted

# Math Parser

, 25 Aug 2005 CPOL
 Rate this:
Solve mathematical equations

## Introduction

This is a parser which uses RegEx to solve mathematical expressions.

## How To Use It?

```MathParser.Parser p = new MathParser.Parser();
if( p.Evaluate( "-(5-10)^(-1)(3+2(cos(3Pi)+(2+ln(exp(1)))^3))" ) )
Console.WriteLine( p.Result );
else Console.WriteLine( "Error." );```

## Features

• Functions
• `abs`
• `acos`
• `asin`
• `atan`
• `cos`
• `cosh`
• `floor`
• `ln`
• `log`
• `sign`
• `sin`
• `sinh`
• `sqrt`
• `tan`
• `tanh`
• Operators: +, -, *, , ^, !
• Constants: `Pi`

```p.Mode = MathParser.Mode.RAD;
p.Mode = MathParser.Mode.DEG;

Or:

`Parser p = new Parser( MathParser.Mode.DEG );`

`2(1+3(1e3+1)) = 2*(1+3*(1000+1)) = 2*(1+3(1000+1)) = 2(1+3*(10^3+1)) = 6008`

`2(1+4(5Pi+2,2e3)(5+2)^3)` is the same as `2*(1+4*(5*Pi+2200)*(5+2)^3)`.

## Known Problems

I tested this parser on a German operating system (WinXP).
If I want to convert a `string `to `double `(e.g. "`3.123`") the decimal point must be a "`,`" (`Convert.ToDouble("3.123"`) would throw an Exception).
I'm not sure if this works on an English version of WinXP.

If there are any problems with the decimal point, just report it and I will fix it.

## Bug Fixes

• Fixed some problems with exponents

## Share

 Germany
No Biography provided

## You may also be interested in...

 Ignoring comma when called by SQL Assembly Leo Kruz25-Nov-09 2:59 Leo Kruz 25-Nov-09 2:59
 The Parser does not respect presedence her´minator4-Mar-09 20:20 her´minator 4-Mar-09 20:20
 (exp(2)) not working TominatorBelgium3-Mar-09 6:59 TominatorBelgium 3-Mar-09 6:59
 cos(8) bey0nd8511-Jan-09 23:08 bey0nd85 11-Jan-09 23:08
 10*20+5*10 - No Result ? Victor Vanchesa15-Nov-07 11:42 Victor Vanchesa 15-Nov-07 11:42
 Problem with expression Avrin174-Oct-07 0:12 Avrin17 4-Oct-07 0:12
 Re: Problem with expression Member 773069617-Aug-11 16:24 Member 7730696 17-Aug-11 16:24
 ln(exp(1)) evaluating correctly for you? BreakableC21-Sep-07 1:13 BreakableC 21-Sep-07 1:13
 ACOS, ASIN , ATAN error roksy30-Aug-07 22:53 roksy 30-Aug-07 22:53
 Problem with EMT64/AMD64 Extensions? DocEvil796-Nov-06 7:51 DocEvil79 6-Nov-06 7:51
 Re: Problem with EMT64/AMD64 Extensions? fdafdafdsa16-Nov-06 15:37 fdafdafdsa 16-Nov-06 15:37
 Re: Problem with EMT64/AMD64 Extensions? Xynratron15-Mar-07 2:53 Xynratron 15-Mar-07 2:53
 Error In Program sis138212-Sep-06 8:41 sis1382 12-Sep-06 8:41
 Re: Error In Program Paratrooper66612-Sep-06 11:55 Paratrooper666 12-Sep-06 11:55
 Re: Error In Program Member 77306965-Oct-11 12:36 Member 7730696 5-Oct-11 12:36
 Logical operators support Felin4-Aug-06 5:56 Felin 4-Aug-06 5:56
 More problems with floating point BreakableC16-May-06 4:08 BreakableC 16-May-06 4:08
 Re: More problems with floating point Paratrooper66618-May-06 11:23 Paratrooper666 18-May-06 11:23
 Re: More problems with floating point BreakableC18-May-06 23:05 BreakableC 18-May-06 23:05
 Re: More problems with floating point Lmello7-Jun-06 16:09 Lmello 7-Jun-06 16:09
 Re: More problems with floating point schubb4-Sep-06 6:54 schubb 4-Sep-06 6:54
 Re: More problems with floating point schubb4-Sep-06 7:26 schubb 4-Sep-06 7:26
 Last Visit: 31-Dec-99 18:00     Last Update: 24-May-16 6:15 Refresh 12 Next »