VB.net 中的基本数学函数
Basic math functions in VB.net
所以我目前正在添加一个基本的计算器,它允许用户定义 2 个变量,然后按下一个按钮,将变量放入一个基本的数学方程式中并显示结果,但我想我已经做到了完全错误。
这是我第一次在 VB 中使用数学函数,如果有人能告诉我哪里出错了,我将不胜感激。
到目前为止,这是我的代码:
Imports System.Math
Public Class SOGACALC
Dim soga As String = Math.Abs(72 - months.Text) * opp.Text
Private Sub SOGACALC_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SOGAValue.Text = soga
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
HOME.Show()
Me.Close()
End Sub
End Class
你写的地方
Dim soga As String = Math.Abs(72 - months.Text) * opp.Text
我怀疑您预计 soga
将成为其中所指属性的函数,并且会随着这些属性的变化而变化。那样不行。
获取随参数变化的值的方法是定义一个函数,因此您可能有:
Friend Function Soga(monthValue As Control, oppThing As Control) As String
Dim month As Integer = CInt(monthValue.Text)
Dim opp As Decimal = CDec(oppThing.Text)
Return (Math.Abs(72 - month) * opp).ToString()
End Function
并这样称呼它:
'TODO: Give Button1 a meaningful name.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SOGAValue.Text = Soga(months, opp)
End Sub
表单上有控件名称 "months" 和 "opp"。
我强烈建议您使用 Option Strict On - 它会指出代码中的问题并为您提出更正建议。
请注意,我为 opp
使用了 Decimal 类型 - 我不得不猜测合适的类型,因为在您向我们展示的代码中没有任何地方表明它需要什么类型。
一个改进是使用 TryParse 方法而不是 CInt/CDec,这样您就可以在用户犯了一个简单的输入错误时通知他们。
所以我目前正在添加一个基本的计算器,它允许用户定义 2 个变量,然后按下一个按钮,将变量放入一个基本的数学方程式中并显示结果,但我想我已经做到了完全错误。
这是我第一次在 VB 中使用数学函数,如果有人能告诉我哪里出错了,我将不胜感激。
到目前为止,这是我的代码:
Imports System.Math
Public Class SOGACALC
Dim soga As String = Math.Abs(72 - months.Text) * opp.Text
Private Sub SOGACALC_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SOGAValue.Text = soga
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
HOME.Show()
Me.Close()
End Sub
End Class
你写的地方
Dim soga As String = Math.Abs(72 - months.Text) * opp.Text
我怀疑您预计 soga
将成为其中所指属性的函数,并且会随着这些属性的变化而变化。那样不行。
获取随参数变化的值的方法是定义一个函数,因此您可能有:
Friend Function Soga(monthValue As Control, oppThing As Control) As String
Dim month As Integer = CInt(monthValue.Text)
Dim opp As Decimal = CDec(oppThing.Text)
Return (Math.Abs(72 - month) * opp).ToString()
End Function
并这样称呼它:
'TODO: Give Button1 a meaningful name.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SOGAValue.Text = Soga(months, opp)
End Sub
表单上有控件名称 "months" 和 "opp"。
我强烈建议您使用 Option Strict On - 它会指出代码中的问题并为您提出更正建议。
请注意,我为 opp
使用了 Decimal 类型 - 我不得不猜测合适的类型,因为在您向我们展示的代码中没有任何地方表明它需要什么类型。
一个改进是使用 TryParse 方法而不是 CInt/CDec,这样您就可以在用户犯了一个简单的输入错误时通知他们。