2016-03-25 5 views
-1

Deshalb möchte ich einen einfachen Taschenrechner machen, und ich Mühe habe,Zahlen addieren nicht korrekt in Visual Basic

Public Class Form1 
Private Numb1 
Private Oper 
Private Numb2 
Private Start As Boolean 
Private Ans 
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click 
    Numb1 = TextBox1.Text 
    TextBox1.Clear() 
    TextBox2.Text = Numb1 + "+" 
    Oper = 1 
    Start = True 
End Sub 

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    Numb2 = TextBox1.Text 
    TextBox1.Clear() 
    TextBox2.AppendText(Numb2) 
    If Oper = 1 Then 
     Ans = Numb1 + Numb2 
     TextBox1.Text = Ans 
    ElseIf Oper = 2 Then 
     Ans = Numb1 - Numb2 
    End If 
    Start = False 
End Sub 

So das Problem, dass, wenn ich 1 + 2 hinzufügen, um den Rechner verwenden, kommt es out to 12, statt 3. Ich weiß nicht, was ich tun soll, um zu erkennen, dass ich die Zahlen nicht nebeneinander haben will, ich will, dass sie hinzugefügt werden.

+5

Das, s, weil die Art der TextBox.Text String ist. .. "addieren" Strings zusammen verkettet sie –

+0

Also sollte es sein 'val (textbox1.text) = numb1'? – jytub310

+5

Zuallererst, die Art der Variablen nicht zu deklarieren, obwohl VB.NET dies erlaubt, ist meiner Meinung nach eine schlechte Praxis. Du solltest OPTION STRICT ON in den Eigenschaften deines Projekts aktivieren, zumindest bis du verstehst, was du tust –

Antwort

3

Um die Zahlen zu addieren benötigen Sie bitte den Text zu konvertieren

Numb1 = CInt(TextBox1.Text) 

Ab sofort auf Integer, sind Sie concatenating String, daher der Ausgang.

Auch ab jetzt Ihre Erklärung der Variablen wird als Objekt betrachtet, daher erklären ihn als

Private Numb1 as Integer 

Das Gleiche gilt für Numb2