-1

我在这里遇到问题,无法弄清楚我的代码哪里出错了,所以我决定问你们。我为运费制作了一个 vb.net 程序,它会根据总价计算它。问题是,如果我输入 1000.34,它会给我零作为运费,而它应该给我 14 美元。我在这里遗漏了一些非常简单的东西,没有语法错误。

谢谢你。

Dim totPrice As Decimal
Dim Ship As Integer

Decimal.TryParse(txtTot.Text, totPrice)

Select Case totPrice
    Case Is <= 1.0
        Ship = 0
    Case 1 To 100
        Ship = 2
    Case 50 To 450
        Ship = 12
    Case 301 To 1000
        Ship = 14
    Case Is >= 1001
        Ship = 16
End Select

lblshi.Text = Ship.ToString("C0")
4

1 回答 1

1

1000.34 不符合任何条件,因此它返回默认船舶值,即 0,因为您没有设置它。它大于 1000,这就是为什么它不将船设置为 14 但小于 1001,这就是为什么它不设置为 16。

要纠正这个问题,您可以将 301 的值提高到 1000,但您可能仍会遇到边缘情况。我认为您可能需要考虑为此切换到 If 语句,以便您可以使用大于号进行与运算。

If totPrice <= 1
  ' All of your other cases
Else If totPrice >301 and totPrice<1001
     'do work
Else If totPrice >= 1001

End If
于 2012-09-17T18:48:25.353 回答