Vb.net 我无法通过选择案例计算正确的数字

Vb.net 我无法通过选择案例计算正确的数字,vb.net,Vb.net,我试图得到折扣价格使用选择的情况下,但我一直得到正常的价格 我选择学生,点击瑜珈和私人教练选项,然后根据计算,我把11个月的费用加在76.50元月费上,总计841.50元,但我每月得到85元,总计935元。帮帮忙谢谢 Protected Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click Dim decMontlyFee As Decimal Dim

我试图得到折扣价格使用选择的情况下,但我一直得到正常的价格

我选择学生,点击瑜珈和私人教练选项,然后根据计算,我把11个月的费用加在76.50元月费上,总计841.50元,但我每月得到85元,总计935元。帮帮忙谢谢

Protected Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
        Dim decMontlyFee As Decimal
        Dim decTotalFee As Decimal
        Dim discount As Double
        Dim intMonths As Integer

        Dim decAdultFee As Decimal = 40
        Dim decChildFee As Decimal = 20
        Dim decStudentFee As Decimal = 25
        Dim decSeniorFee As Decimal = 30
        Dim decYogaFee As Decimal = 10
        Dim decKarateFee As Decimal = 30
        Dim decTrainerFee As Decimal = 50


        If radAdult.Checked = True Then
            decMontlyFee = decAdultFee
        ElseIf radChild.Checked = True Then
            decMontlyFee = decChildFee
        ElseIf radStudent.Checked = True Then
            decMontlyFee = decStudentFee
        ElseIf radSenior.Checked = True Then
            decMontlyFee = decSeniorFee
        End If

        If chkYoga.Checked = True Then
            decMontlyFee += decYogaFee
        End If
        If chkTrainer.Checked = True Then
            decMontlyFee += decTrainerFee
        End If
        If chkKarate.Checked = True Then
            decMontlyFee += decKarateFee
        End If

        Select Case intMonths
            Case Is <= 3
                discount = 0
            Case 4 To 6
                discount = decMontlyFee * 0.05
            Case 7 To 9
                discount = decMontlyFee * 0.08
            Case Is >= 10
                discount = decMontlyFee * 0.1
        End Select

        decMontlyFee -= discount
        decTotalFee = decMontlyFee * txtMonths.Text

        lblMonthlyFee.Text = decMontlyFee.ToString("c")
        lblTotalFee.Text = decTotalFee.ToString("c")

    End Sub
End Class
受保护的子btnCalculate\u单击(发送方作为对象,e作为事件参数)处理btnCalculate。单击
Dim decMontlyFee作为十进制
Dim decTotalFee作为十进制
双倍折扣
将整数设为整数
十进制尺寸decAdultFee=40
十进制数=20的Dim decChildFee
Dim decStudentFee,十进制=25
以十进制表示的Dim DECER费用=30
十进制尺寸decYogaFee=10
尺寸decKarateFee为十进制=30
小数点后的学员人数=50
如果radAdult.Checked=True,则
decMontlyFee=decAdultFee
ElseIf radChild.Checked=True然后
decMontlyFee=decChildFee
ElseIf radStudent.Checked=则为真
十二月费=十二月学生费
ElseIf radSenior.Checked=则为真
十二月份费用=十二月份费用
如果结束
如果chkYoga.Checked=True,则
DeckmontlyFee+=Deckyogafee
如果结束
如果chkTrainer.Checked=True,则
decMontlyFee+=decMontlyFee实习生
如果结束
如果chkKarate.Checked=True,则
12月费用+=decKarateFee
如果结束
选择案例月份
情况是=10
折扣=12月费用*0.1
结束选择
12月费用-=折扣
decTotalFee=decMontlyFee*txtMonths.Text
lblmonthyFee.Text=decmonthyFee.ToString(“c”)
lblTotalFee.Text=decTotalFee.ToString(“c”)
端接头
末级

您需要读取intMonths的值,因为该值仅声明且未赋值。

您需要读取intMonths的值,因为该值仅声明且未赋值。

intMonths
指定给文本框值。简化语法

Protected Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
    Dim decMontlyFee As Decimal
    Dim decTotalFee As Decimal
    Dim intMonths As Integer = Integer.Parse(txtMonths.Text)
    Dim decAdultFee As Decimal = 40
    Dim decChildFee As Decimal = 20
    Dim decStudentFee As Decimal = 25
    Dim decSeniorFee As Decimal = 30
    Dim decYogaFee As Decimal = 10
    Dim decKarateFee As Decimal = 30
    Dim decTrainerFee As Decimal = 50
    decMontlyFee = If(radAdult.Checked, decAdultFee, decMontlyFee)
    decMontlyFee = If(radChild.Checked, decChildFee, decMontlyFee)
    decMontlyFee = If(radStudent.Checked, decStudentFee, decMontlyFee)
    decMontlyFee = If(radSenior.Checked, decSeniorFee, decMontlyFee)
    decMontlyFee += If(chkYoga.Checked, decYogaFee, 0)
    decMontlyFee += If(chkTrainer.Checked, decTrainerFee, 0)
    decMontlyFee += If(chkKarate.Checked, decKarateFee, 0)
    Select Case intMonths
        Case Is <= 3
            decMontlyFee *= 1
        Case 4 To 6
            decMontlyFee *= 0.95
        Case 7 To 9
            decMontlyFee *= 0.92
        Case Is >= 10
            decMontlyFee *= 0.9
    End Select
    decTotalFee = decMontlyFee * intMonths
    lblMonthlyFee.Text = decMontlyFee.ToString("c")
    lblTotalFee.Text = decTotalFee.ToString("c")
End Sub
受保护的子btnCalculate\u单击(发送方作为对象,e作为事件参数)处理btnCalculate。单击
Dim decMontlyFee作为十进制
Dim decTotalFee作为十进制
Dim intMonths As Integer=Integer.Parse(txtmounts.Text)
十进制尺寸decAdultFee=40
十进制数=20的Dim decChildFee
Dim decStudentFee,十进制=25
以十进制表示的Dim DECER费用=30
十进制尺寸decYogaFee=10
尺寸decKarateFee为十进制=30
小数点后的学员人数=50
DeckmontlyFee=If(radAdult.Checked,decAdultFee,DeckmontlyFee)
DeckmontlyFee=If(radChild.Checked,DeckmontlyFee,DeckmontlyFee)
DeckmontlyFee=If(radStudent.Checked,DeckstudentFee,DeckmontlyFee)
DeckmontlyFee=如果(radSenior.Checked,DeckSeniorlyFee,DeckmontlyFee)
十二月份费用+=如果(chkYoga.Checked,DECHYOGAFEE,0)
12月费用+=如果(已检查的培训人员,12月培训人员,0)
12月费用+=如果(已检查,decKarateFee,0)
选择案例月份
情况是=10
12月费用*=0.9
结束选择
decTotalFee=decMontlyFee*intMonths
lblmonthyFee.Text=decmonthyFee.ToString(“c”)
lblTotalFee.Text=decTotalFee.ToString(“c”)
端接头

将您的
intMonths
指定给文本框值。简化语法

Protected Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
    Dim decMontlyFee As Decimal
    Dim decTotalFee As Decimal
    Dim intMonths As Integer = Integer.Parse(txtMonths.Text)
    Dim decAdultFee As Decimal = 40
    Dim decChildFee As Decimal = 20
    Dim decStudentFee As Decimal = 25
    Dim decSeniorFee As Decimal = 30
    Dim decYogaFee As Decimal = 10
    Dim decKarateFee As Decimal = 30
    Dim decTrainerFee As Decimal = 50
    decMontlyFee = If(radAdult.Checked, decAdultFee, decMontlyFee)
    decMontlyFee = If(radChild.Checked, decChildFee, decMontlyFee)
    decMontlyFee = If(radStudent.Checked, decStudentFee, decMontlyFee)
    decMontlyFee = If(radSenior.Checked, decSeniorFee, decMontlyFee)
    decMontlyFee += If(chkYoga.Checked, decYogaFee, 0)
    decMontlyFee += If(chkTrainer.Checked, decTrainerFee, 0)
    decMontlyFee += If(chkKarate.Checked, decKarateFee, 0)
    Select Case intMonths
        Case Is <= 3
            decMontlyFee *= 1
        Case 4 To 6
            decMontlyFee *= 0.95
        Case 7 To 9
            decMontlyFee *= 0.92
        Case Is >= 10
            decMontlyFee *= 0.9
    End Select
    decTotalFee = decMontlyFee * intMonths
    lblMonthlyFee.Text = decMontlyFee.ToString("c")
    lblTotalFee.Text = decTotalFee.ToString("c")
End Sub
受保护的子btnCalculate\u单击(发送方作为对象,e作为事件参数)处理btnCalculate。单击
Dim decMontlyFee作为十进制
Dim decTotalFee作为十进制
Dim intMonths As Integer=Integer.Parse(txtmounts.Text)
十进制尺寸decAdultFee=40
十进制数=20的Dim decChildFee
Dim decStudentFee,十进制=25
以十进制表示的Dim DECER费用=30
十进制尺寸decYogaFee=10
尺寸decKarateFee为十进制=30
小数点后的学员人数=50
DeckmontlyFee=If(radAdult.Checked,decAdultFee,DeckmontlyFee)
DeckmontlyFee=If(radChild.Checked,DeckmontlyFee,DeckmontlyFee)
DeckmontlyFee=If(radStudent.Checked,DeckstudentFee,DeckmontlyFee)
DeckmontlyFee=如果(radSenior.Checked,DeckSeniorlyFee,DeckmontlyFee)
十二月份费用+=如果(chkYoga.Checked,DECHYOGAFEE,0)
12月费用+=如果(已检查的培训人员,12月培训人员,0)
12月费用+=如果(已检查,decKarateFee,0)
选择案例月份
情况是=10
12月费用*=0.9
结束选择
decTotalFee=decMontlyFee*intMonths
lblmonthyFee.Text=decmonthyFee.ToString(“c”)
lblTotalFee.Text=decTotalFee.ToString(“c”)
端接头

我已删除折扣=0,但仍然得到相同的结果,你是什么意思intmonths未设置我已删除折扣并添加decmontlyfee-=intmonths我已删除折扣=0,但仍然得到相同的结果,你是什么意思?我已经取消了折扣,加上了12月份的费用,所以它将是12月份的费用intMonths@Joe我的意思是,作为整数,这里你没有赋值,所以默认值是0,所以折扣是0,最初的价格是最终价格。我认为intmonths适用于select case,因为它正在使用months@Joe月数如何/在何处输入您的计算?将
intMonths
的声明更改为
Dim intMonths As Integer=Integer.Parse(txtmounts.Text)
因此它将是decMontlyFee-=intMonths@Joe我是说,将intMonths设置为整数,此处未指定任何值,因此默认值为0,因此折扣为0,最初的价格是最终价格。我认为intmonths适用于select case,因为它正在使用months@Joe月数如何/在何处输入您的计算?将
intMonths
的声明更改为
Dim intMonths As Integer=Integer.Parse(txtmounts.Text)
接受其他答案。我只是对你的代码做了一些改进。接受另一个答案。我是j