HOWTO · Csharp
Konvertieren Sie Float in Int in C#
Es gibt 4 Hauptmethoden, mit denen ein Float in C# in int konvertiert werden kann, die explizite Typecasting-Methode, die Math.Ceiling() -Funktion, die Math.Floor() -Funktion und die Math.Round() -Funktion.
Auf dieser Seite
Um einen float in C# in einen int umzuwandeln, wählen Sie die Methode danach aus, wie der Nachkommateil behandelt werden soll: Eine direkte Typumwandlung schneidet in Richtung null ab, Math.Ceiling() rundet in Richtung plus unendlich, Math.Floor() in Richtung minus unendlich und Math.Round() auf die nächste ganze Zahl. Jede Umwandlung liefert einen int; dadurch kann sich der Wert eines Eingabewerts mit Nachkommateil ändern.
Float mit expliziter Typumwandlung in C# in Int konvertieren
Eine direkte Typumwandlung ist die einfachste Wahl, wenn Sie den Nachkommateil verwerfen möchten. Sie schneidet in Richtung null ab, sodass sich positive und negative Werte auf null zubewegen und nicht in Richtung minus unendlich. Das folgende vollständige Programm wandelt Werte mit beiden Vorzeichen um:
using System;
class Program
{
static void Main()
{
float positive = 10.9f;
float negative = -10.9f;
int positiveResult = (int)positive;
int negativeResult = (int)negative;
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
Bei der Typumwandlung wird der Nachkommateil entfernt, wobei der Wert in Richtung null geht: Aus 10.9f wird beispielsweise 10 und aus -10.9f wird -10. Die Ergebnisvariablen haben den Typ int. Dieses Beispiel wird als Code bereitgestellt und wurde in dieser Schreibphase nicht ausgeführt.
Float mit der Funktion Math.Ceiling() in C# in Int konvertieren
Verwenden Sie Math.Ceiling(), wenn der Wert in Richtung plus unendlich gerundet werden soll. Die Methode gibt einen double zurück; wandeln Sie diesen Rückgabewert anschließend in einen int um. Bei einem negativen Eingabewert bewegt die Rundung in Richtung plus unendlich den Wert näher an null:
using System;
class Program
{
static void Main()
{
float positive = 10.2f;
float negative = -10.2f;
int positiveResult = (int)Math.Ceiling(positive);
int negativeResult = (int)Math.Ceiling(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
Hier rundet Math.Ceiling() beide Werte auf der Zahlengeraden nach oben, bevor die Typumwandlung das Ergebnis als int speichert. So wird aus dem positiven Eingabewert 11 und aus dem negativen -10. Dieses Beispiel wurde in dieser Schreibphase nicht ausgeführt.
Float mit der Funktion Math.Floor() in C# in Int konvertieren
Verwenden Sie Math.Floor(), wenn der Wert in Richtung minus unendlich gerundet werden soll. Wie Math.Ceiling() gibt die Methode einen double zurück. Wandeln Sie das Ergebnis in einen int um, um es als Ganzzahl zu speichern:
using System;
class Program
{
static void Main()
{
float positive = 10.2f;
float negative = -10.2f;
int positiveResult = (int)Math.Floor(positive);
int negativeResult = (int)Math.Floor(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
Durch die Rundung in Richtung minus unendlich wird aus dem positiven Eingabewert 10 und aus dem negativen -11. Bei negativen Brüchen unterscheidet sich das von einer direkten Typumwandlung, da diese in Richtung null geht. Beide Ergebnisvariablen haben den Typ int. Dieses Beispiel wurde in dieser Schreibphase nicht ausgeführt.
Float mit der Funktion Math.Round() in C# in Int konvertieren
Verwenden Sie Math.Round(), wenn Sie auf die nächste ganze Zahl runden möchten. Die Methode gibt einen double zurück, der in einen int umgewandelt werden kann. Die Eingabewerte liegen nicht genau in der Mitte zwischen zwei ganzen Zahlen; das Beispiel hängt daher nicht von einer Regel für das Runden von Mittelwerten ab:
using System;
class Program
{
static void Main()
{
float positive = 10.8f;
float negative = -10.8f;
int positiveResult = (int)Math.Round(positive);
int negativeResult = (int)Math.Round(negative);
Console.WriteLine(positiveResult);
Console.WriteLine(negativeResult);
}
}
Die nächsten ganzen Zahlen sind 11 beziehungsweise -11. Bei der Umwandlung ändern sich die Nachkommawerte. Math.Round() eignet sich, wenn für Ihre Aufgabe auf den nächstgelegenen Wert gerundet werden soll; die Methode ist nicht grundsätzlich jeder anderen Umwandlung vorzuziehen. Die Ergebnisse haben den Typ int. Dieses Beispiel wurde in dieser Schreibphase nicht ausgeführt.