string to int



  • Hi leute wollte einen string in eine IntegerZahl kovertieren habe es mit:

    Int32.Parse(TextBox.Text);
    

    versucht aber es funktioniert nicht was kann ich noch tun.



  • Also eigentlich sollte das ja schon klappen, oder zumindestens eine Exception
    schmeissen. Vielleicht liegts ja an was anderem, müsstest etwas mehr Code zeigen.

    Ansonsten gäbe es noch die Möglichkeit, die Klasse
    Convert zu benutzen, sieht dann ungefähr so aus:

    int n = Convert.ToInt32(text);
    

    grüße



  • Dann erscheint eine Exception die da lautet:
    System.FormatException: Die Eingabe zeichenfolge hat das Falsche Format



  • Hab ich mir bereits gedacht, das sowas passiert. Deine TextBox.Text
    ist einfach keine Zahl, die sich als int darstellen lässt.

    using System;
    
    class ConvertTest 
    {
        public static int ToInt32(string s) {
            try {
                return Convert.ToInt32(s);
                // oder eben: return Int32.Parse(s); 
                // kommt auf das gleiche raus ..
            } catch(FormatException e) {
                Console.WriteLine("{0} ist keine natuerliche Zahl.", s);
                throw;
            }
        }
    
        public static void Main() {
            Console.WriteLine(ToInt32("12345"));
            Console.WriteLine(ToInt32("123.5"));
        }
    }
    

    grüße



  • Convert.ToInt32 ruft intern auch Int32.Parse auf.

    .method public hidebysig static int32  ToInt32(string 'value') cil managed
    {
      // Codegröße       12 (0xc)
      .maxstack  8
      IL_0000:  ldarg.0
      IL_0001:  brtrue.s   IL_0005
      IL_0003:  ldc.i4.0
      IL_0004:  ret
      IL_0005:  ldarg.0
      IL_0006:  call       int32 System.Int32::Parse(string)
      IL_000b:  ret
    } // end of method Convert::ToInt32
    

Anmelden zum Antworten