vb.net调试价格

vb.net调试价格,vb.net,debugging,Vb.net,Debugging,我在这里遇到了一个问题,无法找出我的代码哪里出错了,所以我决定问问你们。我做了一个vb.net 运输成本的程序,它将根据总价进行计算。问题是如果我输入1000.34, 它给了我一个零作为运费,而它应该给我14美元。我在这里遗漏了一些非常简单的东西 没有语法错误 多谢各位 Dim totPrice As Decimal Dim Ship As Integer Decimal.TryParse(txtTot.Text, totPrice) Select Case totPrice Cas

我在这里遇到了一个问题,无法找出我的代码哪里出错了,所以我决定问问你们。我做了一个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")
Dim将价格设置为十进制
将船舶设置为整数
Decimal.TryParse(txtTot.Text,totPrice)
选择案例总价格
案例Is=1001
船=16
结束选择
lblshi.Text=Ship.ToString(“C0”)

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
如果totPrice=1001
如果结束

除此之外,1000.34是没有理由的。你似乎有一些重叠的时期。例如55,预期结果是什么?2号还是12号?