In der Programmierung besteht oft die Notwendigkeit, Zahlen zu runden und die Dezimalstellen nach dem Komma zu entfernen. Speziell für diese Zwecke bietet die Programmiersprache C# verschiedene Methoden und Funktionen. In diesem Artikel werden wir uns einige Möglichkeiten ansehen, wie Sie Zahlen nach dem Komma in C# entfernen und einen ganzzahligen Wert erhalten können.
Der erste und einfachste Weg ist die Verwendung der Funktion Math.Round(). Mit dieser Funktion können Sie eine Zahl auf den nächsten ganzzahligen Wert runden. Wenn wir jedoch eine Ganzzahl ohne Dezimalstellen erhalten möchten, können wir die Funktion nutzen Math.Floor(). Diese Funktion rundet die Zahl auf den nächsten kleineren ganzzahligen Wert ab.
Eine andere Möglichkeit, Dezimalstellen nach dem Komma zu entfernen, besteht darin, die Zahl in eine Zeichenfolge zu konvertieren und alle Dezimalstellen zu entfernen. Dazu können wir die Funktion verwenden ToString() und die Methode Substring(). Konvertieren Sie zuerst eine Zahl mit einer Funktion in eine Zeichenfolge ToString() und dann mit der Methode Substring() wir entfernen alle Dezimalstellen.
Schließlich besteht eine andere Möglichkeit, Dezimalstellen nach dem Komma zu entfernen, darin, den Divisionsoperator durch 1 zu verwenden. Wenn wir zum Beispiel die Dezimalstellen nach dem Komma für die Zahl 3.14 entfernen müssen, können wir sie einfach durch 1 teilen: 3.14 / 1. Das Ergebnis wäre eine ganze Zahl - 3.
Problem mit Nachkommazahlen in C#
double number = 3.14159;int roundedNumber = (int)number;Console.WriteLine(roundedNumber); // Выведет: 3
Das Ergebnis der Operation wäre also eine Zahl ohne Dezimalstelle, die auf eine kleinere Seite gerundet ist.
Die Verwendung von Typumwandlung kann jedoch zu einem Verlust an Genauigkeit und falschen Ergebnissen führen. Wenn Sie also einfach einen Bruchteil einer Zahl entfernen möchten, ohne sie zu runden, sollten Sie einen anderen Ansatz verwenden:
double number = 3.14159;int truncatedNumber = (int)(number); // Удаление десятичной частиConsole.WriteLine(truncatedNumber); // Выведет: 3
In diesem Fall wird der Dezimalteil der Zahl einfach verworfen, ohne auf die kleinere Seite gerundet zu werden.
Ursachen und Probleme von nicht abgerundeten Zahlen
1. Darstellung von Zahlen im Speicher
Wenn Zahlen im Speicher des Computers gespeichert werden, werden sie als Binärzahlen dargestellt. Dies bedeutet, dass einige Zahlen, die einen endlichen und genauen Eintrag im Dezimalsystem haben, einen unendlichen oder ungefähren Eintrag im Binärsystem haben können.
2. Fehler abrunden
Bei mathematischen Operationen mit Zahlen, einschließlich Dezimalzahlen, können leichte Rundungsfehler auftreten. Dies liegt an einer unzureichenden Genauigkeit der Darstellung von Zahlen im Arbeitsspeicher des Computers.
3. Reelle Arithmetik
Reelle Arithmetik, die im Computer Computing verwendet wird, hat einige Besonderheiten. Zum Beispiel können einige Zahlen nicht exakt als letzte Dezimalzahl dargestellt werden, daher werden sie auf den nächsten richtigen Wert gerundet.
5. Programmierfehler
Das Verständnis der Ursachen und Probleme im Zusammenhang mit nicht abgerundeten Zahlen wird dazu beitragen, die Genauigkeit der Berechnung und Formatierung von Zahlen im C# -Code zu verbessern.
Lösen des Problems der Rundung von Zahlen
Es kommt oft vor, dass Sie in einem in C# geschriebenen Programm die Zahlen nach dem Komma entfernen müssen. Das Runden von Zahlen ist möglicherweise nicht immer bequem oder notwendig und kann manchmal Fehler provozieren oder zu einem unbefriedigenden Ergebnis führen. In diesem Fall können Sie mehrere Methoden verwenden, um die Zahlen nach dem Komma zu entfernen.
Eine einfache Möglichkeit ist die Verwendung der Math-Funktion.Truncate(). Diese Funktion gibt einen ganzen Teil einer Zahl zurück, wobei die Dezimalstellen ohne Rundung entfernt werden. Die zu verarbeitende Zahl wird als Argument an die Funktion übergeben:
| Kode | Ergebnis |
|---|---|
| Math.Truncate(3.14) | 3 |
| Math.Truncate(7.99) | 7 |
Wenn Sie eine Zahl auf eine größere oder kleinere Seite runden möchten, können Sie die Math-Funktion verwenden.Round(). Diese Funktion rundet die Zahl auf den nächsten ganzzahligen Wert auf. Das zweite Argument der Funktion kann die Anzahl der Dezimalstellen übergeben, auf die die Zahl gerundet werden soll:
| Kode | Ergebnis |
|---|---|
| Math.Round(3.14) | 3 |
| Math.Round(3.76) | 4 |
| Math.Round(7.99, 1) | 8.0 |
| Math.Round(7.99, 0) | 8 |
Wenn Sie die Dezimalstellen einfach ohne Rundung löschen möchten, können Sie die Konvertierung in eine ganze Zahl verwenden. Zum Beispiel können Sie für eine Variable vom Typ double das folgende Konstrukt verwenden:
double number = 3.14;
int result = (int)number;
Daher enthält die result-Variable die Zahl 3.
Mit diesen Methoden können Sie die Zahlen nach dem Komma entfernen und das gewünschte Ergebnis in Ihrem C# -Programm erhalten.