我刚刚开始参加VB.net课程,这对班级来说不错,但我在这里苦苦挣扎。我应该做一个“覆盖计算器”我基本上完成了所有事情,除了一件事。我必须根据3个方框计算总费用(长*宽*深* 2.45D)
目前的代码如下:
Private Sub btnDisplayCost_Click(sender As Object, e As EventArgs) Handles btnDisplayCost.Click
Dim strCalculatedCost2 As Decimal
Dim strLength As Decimal
Dim strWidth As Decimal
Dim strAvgDepth As Decimal
Dim CalculatedCost2 As Integer
strCalculatedCost2 = Convert.ToInt32(strCalculatedCost2)
strCalculatedCost2 = strAvgDepth * strWidth * strLength
lblCalculatedCost2.Text = strCalculatedCost2.ToString("C")
lblCalculatedCost2.Visible = True
我遇到的问题是即使没有“2.45D”,如果我尝试单击显示成本,它只显示$ 0.00任何有关我做错的帮助?
答案 0 :(得分:0)
您忘了向strLength
,strWidth
和strAvgDepth
个变量提供任何值。只需执行Dim strLength As Decimal
将导致它被设置为默认值,即零。因此,目前正在发生的是:
strAvgDepth * strWidth * strLength
总会导致:
0 * 0 * 0
如果你应该从文本框中获取值,那么你应该使用Decimal.TryParse()
来验证输入为小数,并避免例外。
Dim strLength As Decimal
Dim strWidth As Decimal
Dim strAvgDepth As Decimal
If Decimal.TryParse(TEXTBOXNAME.Text, strLength) AndAlso _
Decimal.TryParse(TEXTBOXNAME.Text, strWidth) AndAlso _
Decimal.TryParse(TEXTBOXNAME.Text, strAvgDepth) Then
Dim strCalculatedCost2 As Decimal = strAvgDepth * strWidth * strLength
lblCalculatedCost2.Text = strCalculatedCost2.ToString("C")
lblCalculatedCost2.Visible = True
Else
MessageBox.Show("Input must be numerical!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
将每个TEXTBOXNAME
替换为您想要从中获取相应值的每个文本框。