C# anzahl der zahlen eines int herausfinden

Sarius87

Banned
Registriert
Mai 2016
Beiträge
888
kurze frage, wenn ich z.b. das hier hab :

Code:
Console.WriteLine("Bitte gib den 5 stelligen Code ein.");
eingabe = Convert.ToInt32(Console.ReadLine());

und möchte jetzt überprüfen ob die zahl wirklich 5 stellig ist , wie mache ich das ?
 
Code:
if (eingabe.ToString().Lenght == 5) 
{
     text;
}
 
Code:
Console.WriteLine("Bitte gib den 5 stelligen Code ein.");
string eingabe = Console.ReadLine();

if(eingabe.Length == 5)
{
    int eingabeInt =  Convert.ToInt32(eingabe);
}

Hinweis: Wenn die erste Ziffer eine 0 ist, dann wird es zu einer vierstelligen Zahl.
 
Wenn es eine Zahl ist, dann vielleicht nicht die Länge prüfen, sondern ob die Zahl >= 10000 ist.
 
Code:
public static int IntegerLength(int value)
{
    return ((int)Math.Floor(Math.Log10(value))) + 1;
}

Etwas Mathematischer. Sollte aber auch gehen. Macht den Code aber zugegebenermaßen nicht unbedingt lesbarer...
 
Nur so als Tipp am Rande, da ein Code, auch wenn nur aus Ziffern, keine Zahl im eigentlichen Sinne seien sollte.

Wenn man eine Zahl nicht als Zahl zu irgendwelchen Berechnungen benötigt, dann schreib das immer in einen String.
Dasselbe Prinzip gilt auch in Datenbanken.
Um dann zu prüfen, ob es sich bei dem String um einen echte Zahl handelt gibt es die Funktion TryParse z. B. Int32.TryParse()
 
Dann kannst du auch gleich var verwenden und es dem Compiler überlassen.

Best Practis ist beides nicht und viele Freunde findest du da in fachforen wie myCsharp auch nicht.

Und sollte der Coder die variablen noch schlecht benannt haben macht das lesen des Codes richtig viel Spaß
 
Zuletzt bearbeitet:
Var ist aber total unberechenbar.
Der schluckt z.B. sofort führende Nullen, wegen eines falschen Datentypens.

Hier mal Beispiele:
strCode, strPLZ, strHausnummer, strKontonummer, strVorwahl etc.
Niemals INT,LONG,etc!
Das meinte ich.

Und zudem würde die Eingabe eines Strings im Code
Code:
Console.WriteLine("Bitte gib den 5 stelligen Code ein.");
eingabe = Convert.ToInt32(Console.ReadLine());
sofort einen Laufzeitfehler auslösen.
 
Zuletzt bearbeitet:
Zurück
Oben