计算用户输入方程的值

时间:2015-03-31 02:32:45

标签: vb.net visual-studio-2013

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

我正在设计它以便从用户输入的数字的左侧和右侧都受到限制,如果两个答案相差很多,程序会说限制不是&#39存在。 (但是这段代码还没有到位 - 我计划在解决这个问题之后继续处理它)

无论如何,现在我仍然坚持我的代码的一部分。如上所述,用户可以输入自己的自定义功能。然后我让程序自动替换所有" 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

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

您可以从以下链接下载并使用第三方Parser.dll

http://simplemathparser.codeplex.com/

和代码如下所示

    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 )