【发布时间】:2014-06-07 06:22:59
【问题描述】:
我有另一个超级基本的问题,我试图合计用户输入的 txtPrice.Text 中每个条目的小计,然后用更新的税金、运费和总计刷新其他标签。它没有总计 subTotal,其他一切正常。那是怎么回事?
Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
Dim sglSub As Single
Dim sglTotal As Single
Dim sglSalesTax As Single
Const TAX_RATE As Single = 0.02
Dim bytShippingCharge As SByte = 10
Dim sglCompTotal As Single
Single.TryParse(txtPrice.Text, sglSub)
sglTotal += sglSub
lblSubTotal.Text = sglTotal.ToString("C2")
sglSalesTax = (sglTotal * TAX_RATE)
lblTax.Text = sglSalesTax.ToString("C2")
If sglTotal >= 100 Then
bytShippingCharge = 0
End If
lblShipping.Text = bytShippingCharge.ToString("C2")
sglCompTotal = (sglTotal + sglSalesTax + bytShippingCharge)
lblTotal.Text = sglCompTotal.ToString("C2")
End Sub
【问题讨论】:
-
every entry in the txtPrice.Text the user enters- 我没有看到任何可以处理多个条目的东西。看起来像一个条目,就是这样。你指的是哪个变量? sglSub? Decimal 类型比 Singles 或 Doubles 更适合财务计算。 -
我希望用户在文本框中输入一个金额,并且每次用户单击 btnCalc 时,它都会将 slgSub(文本框中当前的金额)添加到 slgTotal。然后使用 slgTotal,刷新 lblTax lblShipping 和 lblTotal。
-
所有变量都只在 Calc 方法的范围内,所以当你点击 calc 按钮时它们都初始化为零。 听起来您想在表单级别声明 slgTotal:
Private slgTotal As Decimal(是的,切换到小数)。 -
哪一行没有产生预期的结果?请使用调试器找出答案。将此信息添加到您的问题中。
-
与金钱打交道时,始终使用
Decimal,而不是Single或Double。
标签: vb.net