2015-03-31 68 views
0

我正在构建Visual Studio 2013中的一个简单的极限计算器。现在,我的程序以一种方式设置,以便用户首先输入极限的公式,然后极限值。 (例如x + 3的等式,3的极限值 - 答案应该是6)计算用户输入的公式的值

我正在设计它,以便它从用户输入数字的左侧和右侧取得限制,并且如果两个答案之间的差异相当大,程序会说这个限制不存在。 (但是这个代码还没有到位 - 我打算在解决了这个问题后继续工作)

无论如何,现在我被困在我的代码的一部分。如上所述,用户可以输入自己的自定义功能。然后程序会自动用用户输入的限制值替换所有的“x”值。但是,当我有答案显示时,它会给我一个5.0001 + 3的答案,而不只是8.0001。下面是我的代码,你知道我有什么办法可以解决这个问题,以便它能够执行所需的计算,并且只是吐出一个数字而不是用x代替的方程式?

Public Class Form1 

    Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click 
     Dim Limit As Double = txtLimit.Text 
     Dim Equation As String = txtEquation.Text 
     Dim LeftTest As Double 
     Dim RightTest As Double 

     LeftTest = (Limit - 0.0001) 
     RightTest = (Limit + 0.0001) 

     Dim NewEquation = Replace(Equation, "x", RightTest) 
     Dim FinalAnswer 
     FinalAnswer = NewEquation 
     MsgBox("The limit for this equation is " & NewEquation) 
    End Sub 
End Class 

任何帮助,将不胜感激与此。

回答

0

您可以下载并从以下链接

http://simplemathparser.codeplex.com/

和代码使用第三方Parser.dll如下图所示

Dim Limit As Double = txtLimit.Text 
    Dim Equation As String = txtEquation.Text 
    Dim LeftTest As Double 
    Dim RightTest As Double 

    LeftTest = (Limit - 0.0001) 
    RightTest = (Limit + 0.0001) 

    Dim parser As New MathParser.Parser("x") 
    Dim parsingResult = parser.Parse(Equation) 
    Dim result = parsingResult.Evaluate(RightTest) 
    MsgBox("The limit for this equation is " & result) 
+0

谢谢,这似乎很好地工作!起初,我想知道为什么“x^2”不能用这个附加功能,但后来我意识到功能函数需要“**”而不是“^”符号。 – cam51037 2015-03-31 13:15:23