以不同的费率水平申请折扣

时间:2014-11-12 01:33:29

标签: vb.net

我正在开发一种工具,它可以获取商品的价格和销售数量(按用户输入)。如果数量为50或更多,买家可获得20%的折扣。 49或以下的任何东西都是10%。 当前代码返回0

 Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click

    Dim a, b As Integer
    a = txtPrice.Text
    b = txtQuantity.Text
    If b >50 Then b = 0.2 
    If b <50 Then b = 0.1

    lblTotal.Text = (a * b) / 100

End Sub

我想我可能有百分比错误?希望有人可以/将会有所帮助。

2 个答案:

答案 0 :(得分:0)

您的逻辑似乎有些偏差,并且在计算之前您将覆盖b的值。假设(我可能错了)你想要订单折扣后的总价,试试这个:

Dim price As Integer
Dim quantity As Double 

price = CInt(txtPrice.Text)
quantity = CDbl(txtQuantity.Text)

If quantity > = 50 Then
    lblTotal.Text = ((price * quantity) * 0.8).ToString()
Else
    lblTotal.Text = ((price * quantity) * 0.9).ToString()
End If

这里有几点需要注意。

首先,我在文本框中使用了CIntCDbl。 VB.NET将(取决于你的选项)允许这个,但它的不良形式是习惯于允许编译器转换值(从文本框中的字符串转换为int / double / decimal)并且会导致如果你转向像C#或Java这样的强类型语言,你会感到头痛。

其次,我使用0.8来获得20%的折扣(因为实际上他们获得了80%的折扣)和0.9%的10%折扣。如果不是您需要相应地调整公式,则此计算假设折扣不在订单总数中。

答案 1 :(得分:0)

蒂姆钉了它。谢谢蒂姆。

Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click

Dim a, b As Integer
a = txtPrice.Text
b = txtQuantity.Text
If b >=50 Then b = 0.2 
If b <50 Then b = 0.1

lblTotal.Text = (a * b) / 100
End Sub

'需要将“(a * b)/ 100”改为“a - (a * b)”