Stringinhalt überprüfen
-
Hallo!
ich habe wieder ein Problem.
Ich habe einen String in der die eingabe des Benutzers steht.
Diese eingabe soll eine ganzeinheitliche zahl zwischen 1 und 99 sein.
da der string später in eine double umgewandelt wird, muss ich vorher abprüfen, ob falscherweiße buchstaben eingegeben wurden.
wie mache ich das?um abzprüfen, ob es sich bei der zahl um eine ganzheitliche zahl zwischen 1 und 99 handelt, habe ich folgendes geschrieben:
for(double i=1; i<100; i++) { if(dHours->CompareTo(i) == 0){ correctValue = 1; break; } } if(correctValue != 1) { MessageBox::Show("Bitte geben sie einen ganzen Wert zwischen 1 und 99 ein"); } else { ... }
funktioniert auch. ABER geht das auch einfacher?
Gruß
-
Wieso nicht direkt mit double::TryParse in ein double umwandeln und dann auf den Bereich 1...99 prüfen? Bei ungültiger eingabe liefert TryParse false.
-
Per Char::IsDigit() kannst du prüfen es sich um eine Zahl handelt.
Bzw: Wenn du kein double, sondern ne Integer haben willst, gibts TryParse auch für Int32...und unter math gibts auch ne Möglichkeit min / max Werte zu checken. Kannst natürlich auch per if machen...
-
Achja, double Werte vergleichen ist immer so ne Sache ( Rundungsfehler ). Sollte man möglichst vermeiden...
-
Der Vergleich mit 1 und 99 ist kein Problem