I want to calculate a arithmetic expression from a string using VB, any ideas ?
As an example : "x+2" from a textbox, I want to evaluate the expression
I want to calculate a arithmetic expression from a string using VB, any ideas ?
As an example : "x+2" from a textbox, I want to evaluate the expression
Dim equation As String = "2+6/2"
Dim result = New DataTable().Compute(equation, Nothing)
You can use mxparser library for this purpose.Give a reference to mxparser.dll in your project by clicking ADD Reference button of Microsoft Visual Studio.The mxparser library source code or latest dll file can be from www.mathparser.org.The mXparser is a Math Parser for Java, Android, C# .NET (CLS) Libraries.
Imports org.mariuszgromada.math.mxparser
Private Function evaluate(ByVal str As String) AS Double
Dim expr As Expression = New Expression(str)
DIM d1 As Double
d1=0
d1=expr.calculate()
return d1
End Function
Call to the function can be as follows.
DIM str as String
str=""
str=((45^5)/45))*(5*6)
Dim d as Double
d=0
d=evaluate(str)
MsgBox(" The result of the expression is " + d.ToString)
I found this else where, it provides the full functionality of VBScript, and its not an external library.
'Set a reference in your app to "Microsoft Script Control 1.0"
'It is under the COM tab in references, not in the .NET tab
'
Dim SC As New MSScriptControl.ScriptControl With {.Language = "VBSCRIPT"}
Dim Formula As String = "(1+2)*(3+4)"
Try
Dim Result As Double = Convert.ToDouble(SC.Eval(Formula))
MessageBox.Show("Math success, " & Formula & " = " & Result.ToString)
Catch ex As Exception
MessageBox.Show("Not a valid math formula for a double.")
End Try