Zum Hauptinhalt springen

FormatException-Fehler: Falsche Zahl mit Basis 10 an Position 1

In der Programmierung treten häufig Situationen auf, in denen Fehler beim Arbeiten mit Zahlen auftreten. Ein solcher Fehler ist die FormatException, die auftritt, wenn eine falsche Zahl mit einer Basis von 10 an Position 1 eingegeben wird.

Eine FormatException ist eine Ausnahme, die ausgelöst werden kann, wenn versucht wird, eine Zeichenfolge mithilfe der Parse- oder TryParse-Methoden in eine Zahl zu konvertieren. Der Fehler tritt auf, wenn bei der Konvertierung festgestellt wird, dass die Zahl ein falsches Format aufweist. Insbesondere wenn eine Zahl mit der Basis 10 an Position 1 anstelle der gültigen Ziffern (0 bis 9) andere Zeichen enthält, tritt ein FormatException-Fehler auf.

Um Fehler mit FormatException zu vermeiden, müssen Sie die Eingabe auf die Übereinstimmung mit dem Zahlenformat überprüfen. Sie können die TryParse-Methode verwenden, mit der Sie überprüfen können, ob eine Zeichenfolge in eine Zahl konvertiert werden kann, und wenn ja, die erforderliche Aktion ausführen. Sie können auch die Methoden Parse oder Convert verwenden, aber sie lösen eine FormatException aus, wenn die Zahl ein falsches Format aufweist.

Beispiel für die Verwendung der TryParse-Methode:
string numberString = "123abc";


int number;


bool success = int.TryParse(numberString, out number);


if (success)




// выполняем необходимые действия с числом


>


else




// обрабатываем ошибку FormatException


>

Das Wissen um mögliche Fehler im Zusammenhang mit Zahlen und deren Handhabung hilft daher, Probleme bei der Arbeit mit Daten und beim Erstellen zuverlässiger Programme zu vermeiden.

Was ist FormatException?

Wenn eine Zeichenfolge nicht korrekt in eine Zahl konvertiert werden kann, wird eine FormatException ausgelöst. Die Hauptursachen für diesen Fehler können sein:

  • Das Vorhandensein von ungültigen Zeichen in einer Zeichenfolge, die nicht Teil einer Zahl sind.
  • Es gibt keine Dezimalstellen oder Tausendstelgruppentrennungen.
  • Falsche Verwendung von Plus- oder Minuszeichen, um positive und negative Zahlen anzuzeigen.

Um eine FormatException zu vermeiden, müssen Sie bei der Arbeit mit Methoden zur Konvertierung von Zeichenfolgen in Zahlen vorsichtig sein. Es wird empfohlen, die TryParse-Methode zu verwenden, die den Booleschen Wert true oder false zurückgibt, je nachdem, ob die Konvertierung erfolgreich war. Es ist auch möglich, die Methoden TryParseExact oder ParseExact mit einem bestimmten Zahlenformat zu verwenden.

Bei der Verarbeitung von FormatException müssen Sie strukturierte Ausnahmehandler verwenden, um den Benutzer über einen Fehler zu informieren und Sie zur Eingabe eines gültigen Werts aufzufordern.

Wann tritt ein FormatException-Fehler auf?

Der FormatException-Fehler tritt in der Programmiersprache C# auf, wenn versucht wird, eine Zeichenfolge in eine Zahl zu konvertieren, diese Zeichenfolge jedoch nicht korrekt ist.

Am häufigsten tritt ein FormatException-Fehler auf, wenn Parsing-Methoden verwendet werden (z. B. int.Parse() oder double.Parse()) , um eine Zeichenfolge in eine Zahl zu konvertieren, die Zeichenfolge kann jedoch nicht als gültige Zahl des entsprechenden Typs interpretiert werden.

Wenn beispielsweise ein Zeichen in einer Zeichenfolge vorhanden ist, das keine Ziffer ist, oder wenn die Zeichenfolge Leerzeichen oder andere Sonderzeichen enthält, die nicht Teil eines gültigen Zahlenformats sind, tritt ein FormatException-Fehler auf.

Ein FormatException-Fehler kann auch auftreten, wenn eine Zahl in einer Zeichenfolge außerhalb des gültigen Bereichs für den entsprechenden Datentyp liegt.

Um einen FormatException-Fehler zu vermeiden, wird empfohlen, die Zeichenfolge vor der Verwendung von Parsing-Methoden auf das korrekte Format und nur gültige Zeichen zu überprüfen, bevor Sie die entsprechenden Methoden aufrufen.

BeispieleKorrekte Zeilen zum ParsenFalsche Zeilen zum Parsen
int.Parse()"123", "-42", "0""abc", "12.34", "123 456"
double.Parse()"3.14", "-2.5", "0.0""abc", "12,34", "1 000"

Warum kann eine FormatException durch eine falsche Zahl mit einer Basis von 10 an Position 1 ausgelöst werden?

Wenn wir versuchen, eine Zeichenfolge mit einer Methode in eine Zahl zu konvertieren Parse oder TryParse. wir müssen die Basis des Zahlensystems angeben, in dem diese Zahl geschrieben ist. Wenn wir die Basis 10 (Dezimalzahl) übergeben und die Zeichenfolge das falsche Zahlenformat aufweist, tritt ein Fehler auf FormatException.

Der Fehler kann durch eine falsche Zahl mit der Basis 10 an Position 1 verursacht werden, wenn die Zeichenfolge mit einem Zeichen beginnt, das im Dezimalsystem nicht gültig ist. Wenn beispielsweise eine Zeichenfolge mit dem Zeichen "+" oder "-" beginnt und dann ein anderes Zeichen folgt, das keine Ziffer ist, ist die Zeichenfolge nicht korrekt, um sie in eine Dezimalzahl umzuwandeln.

Der Fehler kann auch verursacht werden, wenn die Zeichenfolge Sonderzeichen, Leerzeichen oder andere Zeichen enthält, die im numerischen Format nicht zulässig sind. Wenn beispielsweise eine Zeichenfolge Leerzeichen oder Währungszeichen enthält, ist die Zeichenfolge ebenfalls nicht korrekt für die Konvertierung.

Ein FormatException-Fehler kann verhindert werden, indem die Eingabezeichenfolge überprüft wird, bevor sie konvertiert und mögliche Ausnahmen behandelt werden. Sie können Methoden verwenden TryParse oder TryParseExact Mit denen Sie überprüfen können, ob es möglich ist, eine Zeichenfolge erfolgreich in eine Zahl zu konvertieren, bevor die Konvertierung durchgeführt wird.