Vb.net 调用语句
我试图在VisualStudio中使用call语句,但在理解逻辑时遇到了一些问题。我正在尝试创建一个windows窗体程序来计算工资单情况下的“净工资”。只是想了解一下这些语句是如何工作的 我只是对如何计算加班工资部分感到困惑,如果没有加班,那么就只支付常规工资 这就是我到目前为止所做的: 公开课表格1Vb.net 调用语句,vb.net,logic,call,statements,Vb.net,Logic,Call,Statements,我试图在VisualStudio中使用call语句,但在理解逻辑时遇到了一些问题。我正在尝试创建一个windows窗体程序来计算工资单情况下的“净工资”。只是想了解一下这些语句是如何工作的 我只是对如何计算加班工资部分感到困惑,如果没有加班,那么就只支付常规工资 这就是我到目前为止所做的: 公开课表格1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles But
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Double
Dim rate As Double
Dim regpay As Double
Dim overpay As Double
hours = TextBox5.Text
rate = TextBox4.Text
If hours > 40 Then
Regular(regpay)
Overtime(overpay)
Else
Regular(regpay)
End If
End Sub
Sub Regular(ByRef regpay As Double)
End Sub
Sub Overtime()
End Sub
我相信这很简单,我只是很难理解逻辑和语法。我建议将正则和超时定义为返回计算值的函数,即:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Double
Dim rate As Double
Dim regpay As Double
Dim overpay As Double
hours = TextBox5.Text
rate = TextBox4.Text
If hours > 40 Then
regpay = Regular(40, rate)
overpay = Overtime(hours - 40, rate)
Else
regpay = Regular(hours, rate)
End If
Dim netPay = regPay + overPay
' TODO: write netPay back to the form
End Sub
Function Regular(hours As Double, rate As Double) As Double
Return hours * rate
End Function
Function Overtime(hours As Double, rate As Double) As Double
Return hours * rate ' Note overtime may be paid at a different rate
End Function
此外,为了保证财务计算的准确性,我建议使用类型over double。我建议将Regular和加班定义为返回计算值的函数,即:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Double
Dim rate As Double
Dim regpay As Double
Dim overpay As Double
hours = TextBox5.Text
rate = TextBox4.Text
If hours > 40 Then
regpay = Regular(40, rate)
overpay = Overtime(hours - 40, rate)
Else
regpay = Regular(hours, rate)
End If
Dim netPay = regPay + overPay
' TODO: write netPay back to the form
End Sub
Function Regular(hours As Double, rate As Double) As Double
Return hours * rate
End Function
Function Overtime(hours As Double, rate As Double) As Double
Return hours * rate ' Note overtime may be paid at a different rate
End Function
此外,为了保证财务计算的准确性,我建议使用类型over double。我建议将Regular和加班定义为返回计算值的函数,即:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Double
Dim rate As Double
Dim regpay As Double
Dim overpay As Double
hours = TextBox5.Text
rate = TextBox4.Text
If hours > 40 Then
regpay = Regular(40, rate)
overpay = Overtime(hours - 40, rate)
Else
regpay = Regular(hours, rate)
End If
Dim netPay = regPay + overPay
' TODO: write netPay back to the form
End Sub
Function Regular(hours As Double, rate As Double) As Double
Return hours * rate
End Function
Function Overtime(hours As Double, rate As Double) As Double
Return hours * rate ' Note overtime may be paid at a different rate
End Function
此外,为了保证财务计算的准确性,我建议使用类型over double。我建议将Regular和加班定义为返回计算值的函数,即:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Double
Dim rate As Double
Dim regpay As Double
Dim overpay As Double
hours = TextBox5.Text
rate = TextBox4.Text
If hours > 40 Then
regpay = Regular(40, rate)
overpay = Overtime(hours - 40, rate)
Else
regpay = Regular(hours, rate)
End If
Dim netPay = regPay + overPay
' TODO: write netPay back to the form
End Sub
Function Regular(hours As Double, rate As Double) As Double
Return hours * rate
End Function
Function Overtime(hours As Double, rate As Double) As Double
Return hours * rate ' Note overtime may be paid at a different rate
End Function
此外,为了保证财务计算的准确性,我建议使用双精度上的类型。要做到这一点,您只需要一种方法。在我继续之前,作为一个简单的规程问题,几乎在任何时候,当你使用货币时,你都应该使用十进制而不是双精度:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Decimal = Decimal.Parse(TextBox5.Text)
Dim rate As Decimal = Decimal.Parse(TextBox4.Text)
Dim regpay As Decimal
Dim overpay As Decimal
If hours > 40D Then
regpay = CalculatePay(40D, rate)
overpay = CalculatePay(hours - 40D, rate * 1.5D)
Else
regpay = CalculatePay(hours, rate)
overpay = 0D
End If
End Sub
Function CalculatePay(ByVal hours As Decimal, ByVal rate As Decimal) As Decimal
Return hours * rate
End Function
你真的只需要一种方法就可以做到这一点。在我继续之前,作为一个简单的规程问题,几乎在任何时候,当你使用货币时,你都应该使用十进制而不是双精度:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Decimal = Decimal.Parse(TextBox5.Text)
Dim rate As Decimal = Decimal.Parse(TextBox4.Text)
Dim regpay As Decimal
Dim overpay As Decimal
If hours > 40D Then
regpay = CalculatePay(40D, rate)
overpay = CalculatePay(hours - 40D, rate * 1.5D)
Else
regpay = CalculatePay(hours, rate)
overpay = 0D
End If
End Sub
Function CalculatePay(ByVal hours As Decimal, ByVal rate As Decimal) As Decimal
Return hours * rate
End Function
你真的只需要一种方法就可以做到这一点。在我继续之前,作为一个简单的规程问题,几乎在任何时候,当你使用货币时,你都应该使用十进制而不是双精度:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Decimal = Decimal.Parse(TextBox5.Text)
Dim rate As Decimal = Decimal.Parse(TextBox4.Text)
Dim regpay As Decimal
Dim overpay As Decimal
If hours > 40D Then
regpay = CalculatePay(40D, rate)
overpay = CalculatePay(hours - 40D, rate * 1.5D)
Else
regpay = CalculatePay(hours, rate)
overpay = 0D
End If
End Sub
Function CalculatePay(ByVal hours As Decimal, ByVal rate As Decimal) As Decimal
Return hours * rate
End Function
你真的只需要一种方法就可以做到这一点。在我继续之前,作为一个简单的规程问题,几乎在任何时候,当你使用货币时,你都应该使用十进制而不是双精度:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim hours As Decimal = Decimal.Parse(TextBox5.Text)
Dim rate As Decimal = Decimal.Parse(TextBox4.Text)
Dim regpay As Decimal
Dim overpay As Decimal
If hours > 40D Then
regpay = CalculatePay(40D, rate)
overpay = CalculatePay(hours - 40D, rate * 1.5D)
Else
regpay = CalculatePay(hours, rate)
overpay = 0D
End If
End Sub
Function CalculatePay(ByVal hours As Decimal, ByVal rate As Decimal) As Decimal
Return hours * rate
End Function
如果小时数>40,则regpay=Regular(40,rate)overpay=加班费(小时数-40,rate)否则regpay=Regular(小时数,rate)结束,如果抛出语法错误“Regular(小时数,rate)”不返回任何值…此外,之后,我需要能够显示工资总额,净工资是多少等等…我应该为其中的每一个都有一个call语句,我不知道如何从每个call语句中提取这些值…@tbeauregard1抱歉,因为这是一个代码片段,我无法键入检查,我已经更新了,希望它现在对您有效。值通过return语句从函数返回,值作为参数传递给函数。通常,净工资是税后工资,总工资是税前工资,因此,如果税率中尚未考虑税收因素,则需要首先计算总工资,然后计算净工资。如果小时数>40,则regpay=常规(40,费率)多付=加班(小时-40,费率),否则regpay=常规(小时,费率)结束,如果抛出语法错误“常规(小时、费率)“不返回任何值…而且,之后,我需要能够显示毛工资是多少,净工资是多少等等…我应该为其中的每一个都有一个call语句,我对如何从每个call语句中提取这些值感到困惑…@tbeauregard1抱歉,因为这是一个代码片段,我无法键入检查,我希望它现在对你有用。值通过return语句从函数返回,值作为参数传递给函数。通常,净工资是税后工资,总工资是税前工资,因此,如果税率中尚未考虑税收因素,则需要首先计算总工资,然后计算净工资。如果小时数>40,则regpay=常规(40,费率)多付=加班(小时-40,费率),否则regpay=常规(小时,费率)结束,如果抛出语法错误“常规(小时、费率)“不返回任何值…而且,之后,我需要能够显示毛工资是多少,净工资是多少等等…我应该为其中的每一个都有一个call语句,我对如何从每个call语句中提取这些值感到困惑…@tbeauregard1抱歉,因为这是一个代码片段,我无法键入检查,我希望它现在对你有用。值通过return语句从函数返回,值作为参数传递给函数。通常,净工资是税后工资,总工资是税前工资,因此,如果税率中尚未考虑税收因素,则需要首先计算总工资,然后计算净工资。如果小时数>40,则regpay=常规(40,费率)多付=加班(小时-40,费率),否则regpay=常规(小时,费率)结束,如果抛出语法错误“常规(小时、费率)“不返回任何值…而且,之后,我需要能够显示毛工资是多少,净工资是多少等等…我应该为其中的每一个都有一个call语句,我对如何从每个call语句中提取这些值感到困惑…@tbeauregard1抱歉,因为这是一个代码片段,我无法键入检查,我希望它现在对你有用。值通过return语句从函数返回,值作为参数传递给函数。通常,净薪酬是税后薪酬,总薪酬是税前薪酬,因此,如果税率中尚未考虑税收因素,则需要首先计算总薪酬,然后计算净薪酬。