Vb.net Visual Basic薪俸税计算器

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语句做到这一点时,数字会混淆,显示错误的结果,或者不显示应

我试图创建的过程是,当用户输入一个由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