???

  • VB.NET

Es gibt 30 Antworten in diesem Thema. Der letzte Beitrag () ist von ChaosBernd.

    Hallo alle zusammen ich habe den code

    so aber ich will werte wie 1.2 oder 0.9 eingeben und dan schmirt das programm ab.
    was soll ich jetzt machen???

    gruß olli ^^
    danke im vorraus



    VB.NET-Quellcode

    1. If TextBox1.Text < 1 Then
    2. Label1.Text = "Zu niedrig"
    3. ElseIf TextBox1.Text > 2 Then
    4. Label1.Text = "Zu hoch"
    5. Else
    6. Label1.Text = "OK"
    7. End If


    Bitte sinnvolleren Titel wählen! MfG gs93



    Edit by LaMa5:
    - 2 Threads zum selben Thema sind nicht nötig
    --> Themen zusammengefügt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „LaMa5“ ()

    Man, die Titel der Threads werden echt immer geiler ("Hilfee!!!", "???", ...) -.-

    Der Code ist echt schei**. Du solltest dir einen besseren Stil anlegen. Aber ich will mal nicht so sein:

    VB.NET-Quellcode

    1. If CDbl(TextBox1.Text) = 0.5 Then
    2. End If
    Als Beispiel.
    dann ist es aber ne komma zahl
    Probiers nochmal^^

    VB.NET-Quellcode

    1. Dim Wert As Integer = Textbox.Text
    2. If Wert > 1 Then
    3. Messagebox.Show(Wert & " ist größer als 1")
    4. End if

    Das sollte doch klappen..^^
    Oder du hast ne kommazahl
    so habe es ein bischen verendert aber jetzt leuft es so wie ich es will

    VB.NET-Quellcode

    1. Dim Wert As Integer = TextBox2.Text
    2. If Wert < "1.0" Then
    3. MessageBox.Show("Warnung")
    4. ElseIf Wert > "2.0" Then
    5. MessageBox.Show("Warnung")
    6. End If

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „oliver14800“ ()

    Du kannst auch keinen String mit einem Double oder integer vergleichen

    VB.NET-Quellcode

    1. If CDbl(Textbox1.Text) < 1.0 Or CDbl(Textbox1.Text) > 2 Then Label1.Text = "Warnung"


    Bedenke das deine Textboxeingaben PUNKT als Dezimaltrennzeichen haben und nicht Komma wie im deutschen. Wenn du Komma haben willst musst du bevor du überprüfst das Komma in Punkt umwandeln Textbox1.Replace(",", ".")
    und so währe es dann ganz richtig wenn du "Option Strinct On" hast

    VB.NET-Quellcode

    1. Dim Wert As Integer = CInt(TextBox2.Text)
    2. If Wert < 1 Then
    3. MessageBox.Show("Warnung")
    4. ElseIf Wert > 2 Then
    5. MessageBox.Show("Warnung")
    6. End If


    Wert ist ein Integer, also eine Ganzahl
    Wert bekommt den wert aus der TextBox also aus string. dann erst mit CInt wandeln
    Nein wäre es nicht, zumal der Code total blöde is mit der ElseIf wird ein Integer mit einem Double Wert verglichen.

    Dann ist es EGAL was man in die Textbox eingibt, wird IMMER eine Warnung angezeigt da Ein Integer aufgerundet wird. Also wenn 1.4 in der Textbox steht wird trotzdem eine Warnung ausgegeben. Weil es entweder aufgerundet wird auf 2 oder abgerundet auf 1.

    Edit: Okay ich seh hierbei mag es funktionieren, da die werte ja zwischen 1 und 2 liegen sollen, aber wenn man 0.9 eingibt wird das trotzdem durchgelassen, weils eben auf 1 aufgerundet wird.
    Klappt irgendwie nicht ... das gibt VB als Fehlermeldung? Kommt überhaupt eine Fehlermeldung oder wird einfach nichts gemacht? Hast du den Code angepasst, wenn es nicht Textbox1 ist sondern 2 oder nicht Label1 sondern 2?? Nutze den Debugger um herauszufinden was in der Textbox drin steht, bzw. was nach der Konvertierung in Double drin steht.

    Dim TextBox1Wert As Double = CDbl(Textbox1.Text)
    If CDbl(TextBox1Wert) < 1.0 Or CDbl(TextBox1Wert t) > 2 Then Label1.Text = "Warnung"
    Entscheide dich mal, du hast bei der ersten If Abfrage 1.0 geschrieben aber bei der zweiten nur 2. Wenn du mit Double rechnen willst musst du eben noch 2.0 statt 2 schreiben

    %P% :thumbup:

    //EDIT: In dem Thread mit dem Titel "???" wurde die Frage doch auch schon gestellt oder? Deja vu ;P
    Hello World
    Nein muss man nicht 1 ist genauso Double wie 1.0, war nur zu Faul bzw. die 2 habe ich erst danach eingefügt weil ich zuvor die Or nicht hatte. Eigentlich hätte man bei 1.0 auch nur 1 schreiben müssen.

    Edit: ja is mir auch schon aufgefallen und habe ihn bereits gemeldet.