Addieren von Zahlen mit NULLEN

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Addieren von Zahlen mit NULLEN

    Hallo zusammen.

    Habe mal wieder ein Problem im Thema addieren.
    Komme mal direkt zum Problem.

    Ich habe ein Label mit dem Wert "0000000000000000000000015"
    und möchte mit einem Button, pro Klick +1 rechnen und die NULLEN sollen allerdings stehen bleiben.
    Habe das zusammen geschrieben, allerdings wird mein Wert "0000000000000000000000015" nur angehangen "00000000000000000000000150000000000000000000000001" wobei es eigentlich "0000000000000000000000016" ergeben soll.

    Quellcode

    1. Dim zahl As Integer = 0
    2. zahl = 1
    3. tDaten.Text += zahl.ToString("00000000000000000000000000000000")

    Wer ist so nett und kann mir helfen. Danke schön
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hi.

    Ich mache das meist mittels "PadLeft/PadRight".

    VB.NET-Quellcode

    1. Dim ganzzahl As Integer = 15
    2. Dim ausgabezahl As String = ""
    3. ausgabezahl = ganzzahl.ToString.PadLeft(30, CChar("0"))
    4. Debug.WriteLine("Zahl mit führenden Nullen, mit maximaler Auffüllung von 30 Zeichen.")
    5. Debug.WriteLine("Der Zahlenwert der Variable ist 15: " & ausgabezahl)



    .PadLeft(30, CChar("0"))
    erst einmal muss ein String-Typ vorhanden sein...
    Dann wird die anzahl der Auffüllung angegeben und optional das Auffüllzeichen.
    Das CChar ist nur weil das auffüllzeichen ein Char-Typ sein muss.

    Kann auch mitt leerzeichen aufgefüllt werden dann mittels CChar(" ") ...

    Hoffe das Hilft...

    c.u Joshi
    Hi.

    Versuche mal dieses...

    VB.NET-Quellcode

    1. Dim ausgabezahl As String = ""
    2. For i = 0 To 15 ' von 0 bis 15
    3. i = i + 1 'addieren mit Eins
    4. ausgabezahl = i.ToString.PadLeft(30, CChar("0"))
    5. Debug.WriteLine("Zahl mit führenden Nullen, mit maximaler Auffüllung von 30 Zeichen.")
    6. Debug.WriteLine(ausgabezahl)
    7. Next


    c.u. Joshi

    Otti schrieb:

    Ich habe ein Label mit dem Wert "0000000000000000000000015"
    Sortiere und verstehe zunächst die Begriffe, die Du verwendest, um nicht Äpfel mit Birnen zu vermengen.
    Eine Zahl ist ein numerischer Wert, der im Rechner intern durch Einsen und Nullen dargestellt wird.
    Dein "Wert" "0000000000000000000000015" ist eine String-Repräsentation des numerischen Wertes 15 mit führenden Nullen.
    Die String-Repräsentation eines numerischen Wertes wird generiert durch eine geeignete Formatierung dieses Wertes.
    Andersherum kann ein numerischer Wert aus einem String durch Parsen ermittelt werden.
    Also:
    Trenne Daten und GUI.
    Gerechnet wird mit Daten, angezeigt wird deren String-Repräsentation.
    Numerische Werte werden in geeigneten Controls (NUD, TextBox-Derivate) zum Editieren angezeigt.
    Dies hier ist suboptimal:

    Eierlein schrieb:

    VB.NET-Quellcode

    1. Text = (Zahl2 + CInt(Text)).ToString("D30")
    besser wäre es, diese Un-Zeile in zwei Code-Zeilen zu zerlegen:

    VB.NET-Quellcode

    1. Dim Zahl3 = Integer.Parse(Text)
    2. Text = (Zahl2 + Zahl3).ToString("D30")
    dann ließe sich der Code auch debuggen, insbesondere, wenn die VAriable Text mit dem Wert "Roullade mit Klößen" befüllt ist. ;)
    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!