FormatException - Dies ist eine Ausnahme, die in C# auftritt, wenn versucht wird, eine Zeichenfolge in eine Zahl zu konvertieren, wenn die Zeichenfolge keine gültige Darstellung der Zahl enthält. Die Hauptgrundlage der Zahl ist in diesem Fall 10.
Der FormatException-Fehler kann während der Programmausführung auftreten, wenn der Benutzer falsche Daten eingibt oder wenn externe Daten verarbeitet werden. Dies kann beispielsweise durch einen Fehler im Datums-, Zahl- oder Zeitformat verursacht werden.
Um einen FormatException-Fehler zu vermeiden, sollten Sie die Eingaben vor der Konvertierung auf Korrektheit überprüfen. Sie können beispielsweise TryParse oder Parse verwenden, um eine Zeichenfolge in eine Zahl zu konvertieren und gleichzeitig zu melden, dass sie erfolgreich war. Sie können auch die TryParseExact- oder ParseExact-Methoden für bestimmte Formate verwenden.
Beispiel für die Verwendung der TryParse-Methode, um einen FormatException-Fehler zu vermeiden:
string input = "123";
int number;
if (int.TryParse(input, out number))
Console.WriteLine("Входная строка корректна.");
Console.WriteLine("Число: " + number);
>
else
Console.WriteLine("Входная строка некорректна.");
>
Was ist FormatException?
Wenn eine Zeichenfolge mithilfe von Methoden wie Parse oder TryParse in eine Zahl konvertiert wird und die Zeichenfolge ein falsches Format aufweist, wird eine FormatException ausgelöst. Eine solche Ausnahme ermöglicht es dem Programmierer, Fehler im Zusammenhang mit einem falschen Zahlenformat zu behandeln und entsprechende Aktionen auszuführen, um Programmfehler zu vermeiden.
Ein falsches Zahlenformat kann verschiedene Ursachen haben, z. B. fehlende Trennzeichen zwischen Ziffern, falsche Verwendung von Plus- und Minuszeichen, überflüssige Zeichen und andere Fehler. Wenn bei der Konvertierung einer Zeichenfolge in eine Zahl eine solche Formatverletzung festgestellt wird, wird eine FormatException ausgelöst.
Um eine FormatException korrekt zu behandeln, müssen Sie einen Try-catch-Block verwenden, in dem Code ausgeführt wird, der eine Zeichenfolge in eine Zahl konvertiert. Im Catch-Block wird überprüft, ob eine FormatException aufgetreten ist, und im Falle eines Fehlers werden bestimmte Aktionen ausgeführt.
Mit der Behandlung einer FormatException-Ausnahme können Sie verschiedene Szenarien für das Verhalten eines Programms bereitstellen, wenn ein Fehler auftritt. Sie können beispielsweise eine Fehlermeldung anzeigen, den Benutzer auffordern, eine gültige Zeichenfolge einzugeben oder andere Aktionen ausführen, die das Programm nicht zum Absturz bringen.
Die Zahlen und ihre Basen
Was ist eine Zahl?
Eine Zahl ist ein abstraktes mathematisches Konzept, das eine bestimmte Größe darstellt, die verwendet wird, um die Anzahl oder Position von Objekten in der Welt zu messen. Die Zahlen werden in vielen verschiedenen Bereichen verwendet, einschließlich Wissenschaft, Finanzen, Programmierung und mehr.
Die Grundlagen der Zahlen
Im normalen Leben verwenden wir ein Dezimalsystem, das auf der Zahl 10 basiert. Es gibt jedoch andere Zahlensysteme, die auf verschiedenen Zahlen basieren, die als "Basen" bezeichnet werden. Die Basis gibt die Anzahl der Ziffern an, die zur Darstellung einer Zahl verwendet werden können.
Zum Beispiel werden im Binärsystem (mit Basis 2) nur zwei Ziffern verwendet – 0 und 1. Das Hexadezimalsystem (mit Basis 16) verwendet 16 Ziffern – von 0 bis 9 und von A bis F.
Wie funktioniert die Übersetzung von Zahlen?
Wenn wir mit Zahlen in verschiedenen Zahlensystemen arbeiten, müssen wir ihre Gründe berücksichtigen. Zum Beispiel bedeutet die Zahl "1011" im Binärsystem 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 = 11 im Dezimalsystem.
FormatException-Fehler: Falsche Zahl mit Basis 10
Ein FormatException-Fehler kann auftreten, wenn Sie versuchen, eine Zeichenfolge in eine Zahl zu konvertieren, wenn die Zeichenfolge Zeichen enthält, die mit der ausgewählten Basis nicht kompatibel sind. Wenn Sie beispielsweise versuchen, die Zeichenfolge "123A" in eine Zahl mit der Basis 10 (Dezimal) zu konvertieren, wird eine FormatException ausgelöst, da der Buchstabe "A" keine gültige Ziffer im Dezimalsystem ist.
Um einen FormatException-Fehler zu vermeiden, müssen Sie sicherstellen, dass die Zeichenfolge nur gültige Ziffern für die ausgewählte Basis der Zahl enthält. Bei Basis 10 sind die gültigen Ziffern die Zahlen 0 bis 9.
Es ist wichtig zu beachten, dass die Basis einer Zahl bestimmt, welche Ziffern verwendet werden können, um eine Zahl darzustellen, und eine falsche Verwendung von Ziffern kann zu einem FormatException-Fehler führen.
Basis 10 im Zahlensystem
Basis 10 ist ein Zahlensystem, das die üblichen zehn Zeichen verwendet: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Jede Position einer Zahl im Dezimalsystem hat einen eigenen Wert, der durch den Grad der Zahl 10 bestimmt wird. Zum Beispiel kann die Zahl 1234 im Dezimalsystem als geschrieben werden:
1234 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0
Basis 10 hat mehrere Vorteile gegenüber anderen Zahlensystemen:
1. Breite Verwendung: Das Dezimalsystem wird überall im täglichen Leben, im Handel, im Finanzbereich, in der Wissenschaft, in der Technologie und in anderen Bereichen verwendet.
2. Einfachheit: Base 10 ist leicht zu verstehen und zu verwenden, da wir uns seit unserer Kindheit an dieses System gewöhnt haben.
3. Einfache und genaue Darstellung von Dezimalzahlen: Das Dezimalsystem ermöglicht eine präzise und bequeme Darstellung von Dezimalzahlen, was in anderen Zahlensystemen nicht immer möglich ist.
In einigen Fällen kann die Basis 10 jedoch Fehler beim Arbeiten mit Zahlen verursachen. Wenn Sie beispielsweise eine Zeichenfolge in eine Zahl konvertieren, kann ein FormatException-Fehler auftreten, wenn die Zeichen in der Zeichenfolge keine gültigen Ziffern im Dezimalsystem sind.
Base 10 ist das am häufigsten verwendete und am weitesten verbreitete Zahlensystem im täglichen Leben. Es hat eine einfache und verständliche Struktur und ermöglicht es Ihnen auch, mit Bruchzahlen bequem zu arbeiten. Die mit Grund 10 verbundenen Fehler treten auf, wenn die Zahlen falsch formatiert sind und eine Korrektur erforderlich ist, damit das Programm ordnungsgemäß ausgeführt wird.
Ursachen für den FormatException-Fehler
Ein FormatException-Fehler tritt auf, wenn Code versucht, eine Zeichenfolge in ein numerisches Format zu konvertieren, die Zeichenfolge jedoch im angegebenen Zahlensystem ein falsches Zahlenformat aufweist.
Wenn Sie die Methoden Parse oder TryParse verwenden, um eine Zeichenfolge in eine Zahl zu konvertieren, wird das Zahlensystem standardmäßig als dezimal (mit Basis 10) betrachtet. Wenn die Zeichenfolge ungültige Zeichen enthält oder nicht mit dem erwarteten Format übereinstimmt, wird eine FormatException ausgelöst.
Ein Grund für den FormatException-Fehler kann sein, dass Trennzeichen für den ganzzahligen Teil und den Dezimalteil einer Zahl nicht korrekt verwendet werden. Wenn beispielsweise ein Punkt in einer Zeichenfolge als Dezimaltrennzeichen verwendet wird und das Zahlensystem standardmäßig ein Komma benötigt, tritt ein FormatException-Fehler auf.
Eine weitere Ursache für den Fehler kann mit der Angabe eines falschen Zahlensystems zusammenhängen. Wenn Sie beispielsweise versuchen, eine Zahl mithilfe der Parse-Methode in Hexadezimal zu konvertieren, ohne das richtige Zahlensystem (16) anzugeben, wird eine FormatException ausgelöst.
Um einen FormatException-Fehler zu vermeiden, müssen Sie sicherstellen, dass die in eine Zahl zu konvertierende Zeichenfolge mit dem erwarteten Format und dem erwarteten Zahlensystem übereinstimmt. Sie können auch die TryParse-Methoden verwenden, um das richtige Zahlensystem anzugeben, um eine Zeichenfolge sicher in eine Zahl zu konvertieren.
Beispiele für FormatException-Fehler
- Konvertieren einer Zeichenfolge in eine Zahl mit ungültigem Format:
string str = "abc";int number = int.Parse(str);
string str = "1,234.56";double number = double.Parse(str);
string str = "";int number = int.Parse(str);
string str = null;int number = int.Parse(str);
FormatException-Fehler können in verschiedenen Situationen auftreten und können aus verschiedenen Gründen auftreten. Daher sollten Sie bei der Verarbeitung von Benutzereingaben oder beim Konvertieren von Zeichenfolgen in Zahlen die Möglichkeit dieses Fehlers berücksichtigen und entsprechende Mechanismen für die Verarbeitung und Validierung der Eingaben bereitstellen.