2017-06-29 48 views
0

我对于Visual Basic来说真的很陌生。所以我试图在Visual Basic中创建一个Windows窗体应用程序,它从两个文本框中获取两个数字。在运行应用程序时,我试图计算2 + 3,但得到23。怎么了?试图在Visual Basic中做2 + 3。改为23而不是

Public Class CalcForm 
    Private Sub sumBtn_Click(sender As Object, e As EventArgs) Handles sumBtn.Click 
     Dim res As Integer 
     res = firNum.Text + secNum.Text 
     Convert.ToDecimal(res) 
     resultNum.Text = res 
    End Sub 
End Class 
+2

您添加secnum.text这是字符串。添加:'res = convert.ToInt32(firNum.Text)+ convert.ToInt32(secNum.Text)' – Mederic

+0

此代码中的'Convert.ToDecimal(res)'行不做任何事。你希望它会做什么? – Enigmativity

+0

非常感谢,让我试试看。 –

回答

7

的问题是要添加两个字符串:

firNum.Text + secNum.Text 

这不会做加法。

使用数字来代替:

Dim res As Decimal 
res = Convert.ToDecimal(firNum.Text) + Convert.ToDecimal(secNum.Text) 
resultNum.Text = res 

我使用的小数,因为你在哪里使用它,以及之前。 对于转换工作,你需要确保你的文本框只使用数字。

可以使用例如检查:IsNumeric()

+0

恭喜1000个声望! - 哎呀......我毁了这个平静......;) –

+1

@VisualVincent Nooooooooooooooooooooooo你** ** **!哈哈哈感谢uptvote:p – Mederic

0
Public Class CalcForm 
    Private Sub sumBtn_Click(ByVal sender As Object, ByVal e As EventArgs) Handles sumBtn.Click 
     Dim res As Integer 
     Dim first, second As Integer 
     If Integer.TryParse(firNum.Text, first) AndAlso Integer.TryParse(secNum.Text, second) Then 
      res = first + second 
      resultNum.Text = res.ToString() 
     Else 
      MessageBox.Show("Invalid input") 
     End If 
    End Sub 
End Class 
+0

谢谢,但你能告诉什么5行意味着什么? –

+0

如果每个框中的文本都成功转换为一个'Integer',然后添加它们并在'resultNum'中显示输出,否则显示一个'MessageBox' –

+0

Integer.TryParse尝试将第一个参数转换为Integer。如果成功,结果将存储在参数2中,并且函数返回True。否则它将返回false –

0

我认为这是正常的,你需要firstNum和SECNUM转换为整数,否则你只是concatening两个字符串值:

res = firNum.Text + secNum.Text 

将字符串转换为整数使用CInt()

那么你应该能够做到2 + 3

0

“5”就是5

不同,您可以使用一个Func,这样即使你有一些字符串后,将其转换为十进制只要它是一个小数而不是一个字符。

Dim addTogether As Func(Of Decimal, Decimal, Decimal) = Function(num1, num2) num1 + num2 
    Try 
     Console.WriteLine(addTogether("5", 5)) ''output 10 even with a string as the first character 
    Catch ex As Exception 
     Console.WriteLine(ex.Message) 
    End Try