1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Anfänger Problem mit seltsamer Fehlermeldung

  • Kampf_Frettchen
  • 17. März 2005 um 08:57
  • Unerledigt
  • Kampf_Frettchen
    2
    Kampf_Frettchen
    Mitglied
    Punkte
    30
    Beiträge
    4
    • 17. März 2005 um 08:57
    • #1

    Hi Leute

    Ich bin neu bei C# und wollte jetzt ein kleines Programm schreiben. C# ist meine erste Programmiersprache, deshalb wird der Fehler wahrscheinlich sehr trivial sein, aber ich seh ihn einfach nicht.

    Ich habe ein Textfeld, ein label und noch ein Textfeld. Ausserdem ist noch ein Button da, der alles rechnet.

    Ich will nun, dass wenn ich auf den Button klicke, dass die eingabe in Textfeld1 und Textfeld2 multipliziert wird und in label1 ausgegeben wird.

    so weit so gut:

    Im Quellcode unter Button hab ich das drinnen stehn:

    decimal a, b, c;
    a= decimal.Parse(label4.Text);
    b= decimal.Parse(textBox2.Text);
    c= decimal.Parse(textBox17.Text);

    a = b * c;
    System.Convert.ToSingle(label4.Text);

    Müsste ja eigentlich passen oder?

    Beim ausführen vom Programm kommt allerdings dieser Fehler:

    formationen über das Aufrufen von JIT-Debuggen
    finden Sie am Ende dieser Meldung, anstatt in diesem Dialogfeld.

    ************** Ausnametext **************
    System.FormatException: Die Eingabezeichenfolge hat das falsche Format.
    at System.Number.ParseDecimal(String s, NumberStyles style, NumberFormatInfo info)
    at System.Decimal.Parse(String s, NumberStyles style, IFormatProvider provider)
    at System.Decimal.Parse(String s)
    at Umrechner.MainForm.Button1Click(Object sender, EventArgs e) in c:\Dokumente und Einstellungen\Peter.EIERKISTE.000\Eigene Dateien\SharpDevelop Projects\Umrechner\MainForm.cs:line 701
    at System.Windows.Forms.Control.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnClick(EventArgs e)
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ButtonBase.WndProc(Message& m)
    at System.Windows.Forms.Button.WndProc(Message& m)
    at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Geladene Assemblys **************
    mscorlib
    Assembly-Version: 1.0.5000.0
    Win32-Version: 1.1.4322.573
    CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
    ----------------------------------------
    Umrechner
    Assembly-Version: 1.0.1902.15954
    Win32-Version: 1.0.1902.15954
    CodeBase: file:///C:/Dokumente%20und%20Einstellungen/Peter.EIERKISTE.000/Eigene%20Dateien/SharpDevelop%20Projects/Umrechner/bin/Debug/Umrechner.exe
    ----------------------------------------
    System.Windows.Forms
    Assembly-Version: 1.0.5000.0
    Win32-Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
    ----------------------------------------
    System
    Assembly-Version: 1.0.5000.0
    Win32-Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
    ----------------------------------------
    System.Drawing
    Assembly-Version: 1.0.5000.0
    Win32-Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
    ----------------------------------------
    mscorlib.resources
    Assembly-Version: 1.0.5000.0
    Win32-Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/mscorlib.resources/1.0.5000.0_de_b77a5c561934e089/mscorlib.resources.dll
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly-Version: 1.0.5000.0
    Win32-Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.windows.forms.resources/1.0.5000.0_de_b77a5c561934e089/system.windows.forms.resources.dll
    ----------------------------------------

    ************** JIT-Debuggen **************
    Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
    Konfigurationsdatei der Anwendung oder des Computers
    (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
    Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

    Zum Beispiel:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
    Ausnahmen an den JIT-Debugger gesendet, der auf dem
    Computer registriert ist, und nicht von diesem Dialogfeld behandelt.



    Wie schon gesagt ich bin Anfänger, aber ich werd nicht schlau draus. Ich finde diesen blöden Fehler einfach nicht :coolgrim:

    Wäre für jede Hilfe dankbar

  • michi204
    26
    michi204
    Mitglied
    Reaktionen
    63
    Punkte
    7.268
    Beiträge
    1.318
    • 17. März 2005 um 10:01
    • #2

    und was gibst du in das textfeld ein?

    diese exception tritt normalerweise auf, wenn du zb Integer.Parse für einen Text wie "hugo" aufrufst, also der text gar keine zahl ist. EDIT: vermutlich tritt sie auch auf, wenn das textfeld leer ist. noch mal EDIT.. oh, es ist ein label, kein textfeld :) trotzdem muss der text eine zahl sein, um ihn konvertieren zu können..

    normalerweise fängt man die exception zB so auf:

    Code
    int i = 0;
    try
    {
         i = Integer.Parse (Textfeld1.Text);
    }
    except (System.FormatException e)
    {
         System.Windows.Forms.MessageBox.Show ("Bitte geben Sie eine Zahl ein.");
    }

    wenn du F5 gedrückt hast, um das programm auszuführen, müsste VS doch ohnehin im quelltext die zeile anzeigen, welche die exception ausgelöst hat.

    lg michi

  • lerod
    13
    lerod
    Mitglied
    Reaktionen
    5
    Punkte
    1.620
    Beiträge
    315
    • 17. März 2005 um 10:04
    • #3

    darf ich fragen, was du in diesen wenigen zeilen code sinnvoll bewerkstelligst willst?

    Zitat


    decimal a, b, c;
    a= decimal.Parse(label4.Text);
    b= decimal.Parse(textBox2.Text);
    c= decimal.Parse(textBox17.Text);

    a = b * c;
    System.Convert.ToSingle(label4.Text);

    Alles anzeigen



    was steht denn bei dir in einem label drin?
    wozu konvertierst du den label inhalt in eine variable?
    wo erfolgt dann die ergebniszuweisung?

    abgesehen von diesen fragen, tipp ich mal ganz scharf, daß du komma zahlen eintippst in deiner applikation und decimal nun mal eine ganzzahlige zahl ist - sprich du wirst damit eine

    Zitat


    ************** Ausnametext **************
    System.FormatException: Die Eingabezeichenfolge hat das falsche Format.
    at System.Number.ParseDecimal(String s, NumberStyles style, NumberFormatInfo info)
    at System.Decimal.Parse(String s, NumberStyles style, IFormatProvider provider)
    at System.Decimal.Parse(String s)
    at Umrechner.MainForm.Button1Click(Object sender, EventArgs e) in c:\Dokumente und Einstellungen\Peter.EIERKISTE.000\Eigene Dateien\SharpDevelop Projects\Umrechner\MainForm.cs:line 701

    Alles anzeigen



    bekommen.

  • michi204
    26
    michi204
    Mitglied
    Reaktionen
    63
    Punkte
    7.268
    Beiträge
    1.318
    • 17. März 2005 um 10:18
    • #4
    Zitat von lerod

    abgesehen von diesen fragen, tipp ich mal ganz scharf, daß du komma zahlen eintippst in deiner applikation und decimal nun mal eine ganzzahlige zahl ist - sprich du wirst damit eine [nfe] bekommen.

    ganz im gegenteil, decimal ist floating-point.
    er hat sogar 28 signifikante dezimalstellen (das hab' ich jetzt abgeschrieben) :grinning_squinting_face:

    eine mögliche fehlerquelle ist aber die unterscheidung "." und ","... ich weiß aber nicht, wie das die parse-funktionen genau handhaben.. habe auch im moment kein windows in der nähe, um es zu testen..

    lg michi

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 17. März 2005 um 11:00
    • #5
    Zitat von michi204

    eine mögliche fehlerquelle ist aber die unterscheidung "." und ","... ich weiß aber nicht, wie das die parse-funktionen genau handhaben.. habe auch im moment kein windows in der nähe, um es zu testen..

    lg michi

    du kannst der Parse methode einen NumberFormatInfo mitgeben, in der du eine property 'NumberDecimalSeparator' bestimmen kannst.

    lg, Benjamin Ferrari, bookworm.at

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung