Wert zwischen zwei Zahlen

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von manni4545.

    Wert zwischen zwei Zahlen

    Mahlzeit,

    ich habe in meiner Form einen Button und eine Textbox.

    Dort möchte ich eine Zahl eingeben. Der Zahlenbereich ist im code vorgegeben.

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. Dim ph As Double = CDbl(TextBox4.Text) 'TextBox Text in Zahl umwandeln
    3. If ph >= 7.0 AndAlso ph < 7.4 Then 'Wenn Zahl zwischen 7.0 und 7.4 dann eine Meldung
    4. MsgBox("PH Wert ist Akzeptabel sollte aber bei 7.2 sein")
    5. ElseIf ph >= 7.5 AndAlso ph < 8.2 Then 'Wenn Zahl zwischen 7.5 und 8.2 dann eine Meldung
    6. MsgBox("Sie sollten den PH Wert auf 7.2 (Optimal) senken")
    7. ElseIf ph >= 6.0 AndAlso ph < 6.9 Then 'Wenn Zahl zwischen 6.0 und 6.9 dann eine Meldung
    8. MsgBox("Sie sollten den PH Wert auf 7.2 (Optimal) erhöhen")
    9. End If


    Funktioniert aber nicht richtig. Gebe ich eine ganze Zahl zb. 7 od.6 od. 8 wird mir die MsgBox angezeit.
    Gebe ich allerdings zb 6.5 also getrennt mit Punkt wird mir nichts angezeigt.

    Komme nicht drauf warum.. Vermutlich die Hitze
    Vielleicht hilft dir das
    docs.microsoft.com/de-de/dotne…ta-types/double-data-type

    ​Typzeichen. Durch Anhängen des Literaltypzeichens R an ein Literal wird der Double-Datentyp erzwungen. Wenn Sie ein ganzzahligen Wert folgt, wird z. B. R, der Wert wird geändert, um eine Double.


    VB.NET-Quellcode

    1. ' Visual Basic expands the 4 in the statement Dim dub As Double = 4R to 4.0:
    2. Dim dub As Double = 4.0R
    Die deutsche Sprache ist Freeware, du kannst sie benutzen, ohne dafür zu bezahlen. Sie ist aber nicht Open Source, also darfst du sie nicht verändern, wie es dir gerade passt.
    @manni4545 Deutsches Windows, englisches Zahlenformat, das beißt sich.
    Gib ein 6,5
    oder
    nimm die englische CultureInfo zum Konvertieren (mit dem Ansatz von @EaranMaleasi )
    oder
    nimm ein NumericUpDown.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Deine IF-Abgrenzungen finde ich irgendwie unlogisch sollte das nicht irgendwie so heissen

    VB.NET-Quellcode

    1. tb.Text = tb.Text.Replace(","c, "."c) 'oder umgekehrt, je nachdem was für eine Cultur
    2. Double.TryParse(tb.Text, ph)
    3. If ph >= 7.0 AndAlso ph < 7.4 Then
    4. Console.WriteLine("{0} - PH-Wert auf 7.2 setzen", ph)
    5. ElseIf ph < 7.0 Then
    6. Console.WriteLine("{0} - PH-Wert auf 7.2 erhöhen", ph)
    7. ElseIf ph >= 7.4 Then
    8. Console.WriteLine("{0} - PH-Wert auf 7.2 senken", ph)
    9. End If


    Freundliche Grüsse

    exc-jdbi