-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 はどの基準も満たしていないため、デフォルトの出荷値が返されます。これは、設定されていないためです。これは 1000 より大きいため、出荷を 14 に設定していませんが、1001 未満であるため、16 に設定していません。

これを修正するには、301 から 1000 のケースで値を増やすことができますが、おそらくまだエッジ ケースに遭遇するでしょう。これを If ステートメントに切り替えることを検討したいと思うかもしれません。これにより、大なりで anding を行うことができます。

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 に答える