Chcę obliczyć wyrażenie arytmetyczne z ciąg znaków przy użyciu VB, wszelkie pomysły?Oblicz wyrażenie matematyczne z ciągu znaków przy użyciu VB
Jako przykład: „x + 2” z pola tekstowego, chcę oceniać wyraz
Chcę obliczyć wyrażenie arytmetyczne z ciąg znaków przy użyciu VB, wszelkie pomysły?Oblicz wyrażenie matematyczne z ciągu znaków przy użyciu VB
Jako przykład: „x + 2” z pola tekstowego, chcę oceniać wyraz
można użyć NCalc
do tego. Przyznaje także parametry jak x, y, z, ...
Dim e As Expression = new Expression("2 + 3 * 5")
Msgbox(17 = e.Evaluate())
Czy wiesz, czy potrafi on parsować [LaTex] (http://en.wikipedia.org/wiki/LaTeX)? –
@JohanLarsson przepraszam, nie mam pojęcia :( –
Nie ma rozwiązań bultin na platformie .Net? –
Można użyć mxparser bibliotekę dla tego purpose.Give odniesienie do mxparser.dll w projekcie, klikając przycisk Add Reference Microsoft Visual Studio. Kod źródłowy biblioteki mxparser lub najnowszy plik dll mogą pochodzić z www.mathparser.org. MXparser jest parserem matematycznym dla bibliotek Java, Android, C# .NET (CLS).
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
Wywołanie funkcji może wyglądać następująco.
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)
Dla mXparser (http://mathparser.org/) jest nawet niezły tutorial "Witaj, świecie" dla VB :-) http://mathparser.org/mxparser-hello-world/mxparser-hello-world-visual-basic/ –
Dim equation As String = "2+6/2"
Dim result = New DataTable().Compute(equation, Nothing)
Ta odpowiedź nie wymaga dodania dodatkowej biblioteki do projekt:) – craigster
myślę, to znaczy, że chcesz wykonać go jako arytmetyki * * wyrazu. Wyrażenie * regularne * to [coś zupełnie innego] (http://en.wikipedia.org/wiki/Regular_expression). Jestem pewien, że już wiesz, że już istnieje – MarkJ
możliwy duplikat [Doing math w vb.net jak Eval w javascript] (http://stackoverflow.com/questions/1452282/doing-math-in-vb-net-like-eval- in-javascript) – Boann