Vb.net Visual Basic薪俸税计算器
我试图创建的过程是,当用户输入一个由IF语句检测到的数字,以显示其低于20%、40%或45%的税率、税额和税后工资,例如,如果输入10000,则税率显示计算税额“2000”和税后工资“8000”的税率的20%这些是我试图计算的“0到31785税率20%”,但“如果低于10600税率0%”,31786到150000税率40%如果低于42385税率0%”,超过15000税率45% 我已经为一个IF语句成功地做到了这一点,但当我尝试为下一个IF语句做到这一点时,数字会混淆,显示错误的结果,或者不显示应该显示的税率Vb.net Visual Basic薪俸税计算器,vb.net,Vb.net,我试图创建的过程是,当用户输入一个由IF语句检测到的数字,以显示其低于20%、40%或45%的税率、税额和税后工资,例如,如果输入10000,则税率显示计算税额“2000”和税后工资“8000”的税率的20%这些是我试图计算的“0到31785税率20%”,但“如果低于10600税率0%”,31786到150000税率40%如果低于42385税率0%”,超过15000税率45% 我已经为一个IF语句成功地做到了这一点,但当我尝试为下一个IF语句做到这一点时,数字会混淆,显示错误的结果,或者不显示应
Public Class Form1
Private Sub button1_Click(sender As Object, e As EventArgs) Handles cmdCalc.Click
Dim decSalary, decTax, decTax2, decTax3, decAmount As Decimal
decSalary = textSalary.Text
decTax = decSalary * 0.2
decTax2 = decSalary * 0.4
decTax3 = decSalary * 0.45
decAmount = decSalary - decTax
lblTax.Text = FormatPercent(0.0, 0.2, 0.4, 0.45, TriState.UseDefault)
Return
lblAmount.Text = Format(decTax, "currency")
lblFinal.Text = Format(decAmount, "currency")
If (decSalary <= 10500) Then
decTax *= 0
ElseIf (decSalary >= 10600) Then
decTax *= 0.2
ElseIf (decSalary <= 31785) Then
decTax *= 0.2
End If
End Sub
Private Sub textBox1_TextChanged(sender As Object, e As EventArgs) Handles textSalary.TextChanged
'Dim decSalary, decTax, decTax2, decAmount As Decimal
' lblTax.Text = FormatPercent(0.0)
' lblAmount.Text = Format(decTax, "currency")
' lblFinal.Text = Format(decAmount, "currency")
' If decSalary <= 10500 Then
'decTax = 0
' ElseIf decSalary >= 10600 Then
' decTax = 0.2
' ElseIf decSalary <= 31785 Then
' decTax2 = decTax
' End If
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles cmdExit.Click
Me.Close()
End Sub
Private Sub cmdClear_Click(sender As Object, e As EventArgs) Handles cmdClear.Click
textSalary.Clear()
lblTax.Text = "0%"
lblAmount.Text = "0"
lblFinal.Text = "0"
End Sub
End Class
公共类表单1
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理cmdCalc。单击
Dim decSalary、decTax、decTax2、decTax3、DecMount为十进制
decSalary=textSalary.Text
decTax=decSalary*0.2
Dectas2=decSalary*0.4
decTax3=decSalary*0.45
decAmount=decSalary-decTax
lblTax.Text=FormatPercent(0.0,0.2,0.4,0.45,TriState.UseDefault)
返回
lblAmount.Text=格式(decTax,“货币”)
lblFinal.Text=格式(十进制,“货币”)
如果(decSalary=10600),则
decTax*=0.2
ElseIf(decsaly您的If
和ElseIf
语句无法按您所期望的方式执行,因为它们是条件顺序,使用的运算符没有意义
If (decSalary <= 10500) Then ' For all integers less than/equal to 10500
decTax *= 0
ElseIf (decSalary >= 10600) Then ' For all integers more than/equal to 10600
decTax *= 0.2
ElseIf (decSalary <= 31785) Then ' For all integers less than/equal to 31785
decTax *= 0.2
End If
为什么这个标签是c++
?即使我自己纳税(在美国),我也不明白你的问题。“31786到150000税率40%,如果低于42385税率0%”。如果他们的税率低于42385,那么这个人仍然要纳税。那么这个短语应该是什么意思?你能提供具体的例子说明你的意思吗?”…当我尝试对下一个IF语句执行此操作时,数字会混淆…”第一个和第二个IF语句到底是什么?我假设生成的工作要求进行这种类型的计算,这里是我用于生成工作的表tax:“基本税率20%,从0到31785,拥有标准PA的人开始为收入超过10600“的人支付该税率,下一个税是,”更高的税率40%,从31786到150000,有标准PA的人开始为收入超过42385的人支付这个税率。下一个税率是从150000+开始的45%,因此我需要从这些税率中产生工资、税率、税额和税后工资。topshotAs你可以从我的代码中看到,我试图用IF语句“IF(decSalary)”来计算
Private Sub CalculateDisplayAmounts(ByVal salary As Decimal)
Dim taxRate As Decimal = GetTaxRate(salary)
Dim taxAmount As Decimal = salary * taxRate
Dim takeHomePay As Decimal = salary - taxAmount
taxRateLabel.Invoke(Sub(x) taxRateLabel.Text = FormatPercent(x), taxRate)
taxAmountLabel.Invoke(Sub(x) taxAmountLabel.Text = FormatCurrency(x), taxAmount)
takeHomeLabel.Invoke(Sub(x) takeHomeLabel.Text = FormatCurrency(x), takeHomePay)
End Sub
Private Function GetTaxRate(ByVal salaryAmount As Decimal) As Decimal
Dim taxRate As Decimal = 0D
If salaryAmount <= 31785D Then
If salaryAmount >= 10600D Then
taxRate = 0.2D
End If
ElseIf salaryAmount <= 150000 Then
If salaryAmount >= 42385D Then
taxRate = 0.4D
End If
Else
taxRate = 0.45D
End If
Return taxRate
End Function