我正在制作一个计数器,当按下计算按钮时会更新,但当我按下它时,它会添加如下:
11111
答案应为5
。
Const tax = 1.05
Dim capPrice = 4.0
Dim espPrice = 2.5
Dim latPrice = 3.5
Dim icedPrice = 3.0
'keeping here teporarily
Dim takeAway = True
If (takeAway = True) Then
capCounter.text = capCounter.text + capAmount.text
espCounter.Text = espCounter.Text + espAmount.Text
latCounter.Text = latCounter.Text + latAmount.Text
icedCounter.Text = icedCounter.Text + icedAmount.Text
答案 0 :(得分:3)
您观察到的是字符串连接,因为TextBox存储字符串。您必须将其转换为数字,例如使用Int32.Parse
,然后您可以对值进行求和:
Dim capCount As Int32
Dim capAmount as Int32
Dim validCapCount = Int32.TryParse(capCounter.Text, capCount)
Dim validCapAmount = Int32.TryParse(capAmount.Text, capAmount)
If validCapCount AndAlso validCapAmount Then
capCounter.Text = (capCount + capAmount).ToString()
End If
' do the same with the other values ...
答案 1 :(得分:0)
这是因为控件的属性Text
是String
。
如果要执行添加,必须先将这些文本转换为整数:
capCounter.text = (CType(capCounter.text, Integer) + CType(capAmount.text, Integer)).ToString()
(如果您确定它只是文本中包含的整数)
答案 2 :(得分:0)
如果您仅将其用于数字并允许用户输入,我建议您使用numericUpDown而不是textboxt。
然后你可以使用numericupdown的Value
属性,它将返回一个数值,而不是一个字符串。
但是,如果您需要它作为文本框,请使用CType作为SuperPeanut sugested或TryParse作为Tim sugested
答案 3 :(得分:0)
其他大多数评论都解释了大部分内容,但您是否尝试使用不同类型的控件来显示信息,可能是NumericUpDownControl?