Konvertierung des Zeichens '7' in die Ziffer 7



  • Hallo Leute,

    wie macht man das?

    Habe schon alles mögliche versucht, es will nicht klappen!

    int a = 0;
    char c = '7';
    a = int.Parse(c); //geht nicht
    a = c // ergibt a=55

    Wie macht man es? Mit welcher Gunktion wandel ich ein char in eine Ziffer um?

    Oder geht das nur so:

    a = c - 48

    ?

    Danke für Eure Hilfe!

    Gruß,

    Micha



  • Micha369 schrieb:

    Oder geht das nur so:
    a = c - 48

    korrekt!
    aber wir scheiben gerne
    a = c - '0'
    weil wie die ascii-tabelle nicht auswendig wissen.
    edit: uups, bin ja in c#. dachte, ich wäre in c++. sorry.



  • int a = 0;
    char c = '7';
    a = int.Parse(c.ToString());
    

    Mit etwas überlegen und Doku lesen eigentlich ganz einfach.



  • Noodles: Ist das echt der gängige Weg? Ich würd c - '0' bevorzugen. Liegt das daran, dass ich aus der C++-Ecke komme?



  • Mit etwas überlegen und Doku lesen eigentlich ganz einfach.

    So umständlich kann doch niemand denken! Also erst das Zeichen in einen String umwandeln und dann in einen Integer-Wert!

    (Weil, z.B. in Basic macht man das so:

    b = val(a)

    Wenn in a das Zeichen "7" steht, dann ist b jetzt 7.

    Also in puncto Typenverträglichkeit und Umwandlung von einen Typ in einen anderen stellt sich C# ziemlich zickig an!

    Gibt es so eine val-Methode nicht schon fertigprogrammiert in einer Bibliothek?



  • Micha369 schrieb:

    Also in puncto Typenverträglichkeit und Umwandlung von einen Typ in einen anderen stellt sich C# ziemlich zickig an!

    Wieso, C# ist nur konsequenter als so einige andere Pfuschersprachen 🙂

    Micha369 schrieb:

    Gibt es so eine val-Methode nicht schon fertigprogrammiert in einer Bibliothek?

    Schau dir einfach mal die Convert Klasse an. Da gibts genau die Funktion die du brauchst! Wie war das mit der Doku? Aber das der Tipp mit der Klasse auch net von dir kam Noodles 😃



  • Convert.ToInt();



  • Ich nutze gerne das neue VisualBasic: dort gibts Val auch noch.

    Imports VB = Microsoft.VisualBasic
    
    ....
    
    Dim c As Char = "7"c
    Dim a As Integer = VB.Val(c)
    

    Aber Achtung: findet Val() was böses, wirft der auch Exceptions! Also noch ein Try/Catch drumherum machen!

    Und wenn Dir das in C# zu umständlich ist: schreib halt eine Klasse, die auch char in einen Binärwert umwandelt... Und abgesehen davon: für ein char braucht man kein Parse, weil da nur eine Ziffer drinstehen kann oder eben nicht. Was will man dann noch Parse. Parse dient eher zum Bestimmen von Ziffernfolgen.


Log in to reply