Tabelle für explizite numerische Konvertierungen (C#-Referenz)

Die explizite numerische Konvertierung wird verwendet, um einen beliebigen numerischen Typ unter Verwendung eines Ausdrucks für die Typumwandlung in einen anderen numerischen Typ zu konvertieren, für den keine implizite Konvertierung stattfindet. Diese Konvertierungen sind in der folgenden Tabelle zusammengefasst.

Weitere Informationen über Konvertierungen finden Sie unter Umwandlung und Typkonvertierungen.

Von To
sbyte byte, ushort, uint, ulong oder char
byte Sbyte oder char
short sbyte, byte, ushort, uint, ulong oder char
ushort sbyte, byte, short oder char
int sbyte, byte, short, ushort, uint, ulong ` oderchar`
uint sbyte, byte, short, ushort, int oder char
long sbyte, byte, short, ushort, int, uint, ulong oder char
ulong sbyte, byte, short, ushort, int, uint, long oder char
char sbyte, byte oder short
float sbyte, byte, short, ushort, int, uint, long, ulong, char ` oderdecimal`
double sbyte, byte, short, ushort, int, uint, long, ulong, char, float ` oderdecimal`
decimal sbyte, byte, short, ushort, int, uint, long, ulong, char, float oder double

Hinweise

  • Explizite numerische Konvertierungen können zu einem Genauigkeitsverlust oder zur Auslösung von Ausnahmen führen.

  • Wenn Sie einen Wert vom Typ decimal in einen ganzzahligen Typ konvertieren, wird dieser auf den nächsten ganzzahligen Wert gegen 0 (null) gerundet. Wenn sich der resultierende ganzzahlige Wert außerhalb des für den Zieltyp gültigen Bereichs befindet, wird eine OverflowException ausgelöst.

  • Bei der Konvertierung eines double-Werts oder float-Werts in einen ganzzahligen Typ wird der Wert abgeschnitten. Befindet sich der resultierende Ganzzahlwert außerhalb des Zieltypbereichs, hängt das Ergebnis vom Kontext mit Überlaufprüfung ab. In einem aktivierten Kontext wird eine OverflowException ausgelöst, während in einem nicht aktivierten Kontext das Ergebnis ein unspezifischer Wert des Zieltyps ist.

  • Wenn Sie double in float konvertieren, wird der double-Wert zum nächsten float-Wert gerundet. Wenn der double-Wert zu klein bzw. zu groß für den Bereich des Zieltyps ist, ist das Ergebnis gleich null oder unendlich.

  • Bei der Konvertierung von float oder double in decimal wird der Quellwert in die decimal-Darstellung konvertiert und gegebenenfalls auf die nächste Zahl hinter der 28. Dezimalstelle gerundet. Abhängig vom Ausgangswert können folgende Ergebnisse auftreten:

    • Wenn der Quellwert zu klein für die decimal-Darstellung ist, ist das Ergebnis gleich null.

    • Wenn der Quellwert ein nicht numerischer Wert, unendlich oder zu groß für die decimal-Darstellung ist, wird eine OverflowException ausgelöst.

  • Wenn Sie decimal in float oder double konvertieren, wird der decimal-Wert zum nächsten double-Wert oder float-Wert gerundet.

Weitere Informationen über explizite Konvertierung finden Sie unter Explicit in der C#-Sprachenspezifikation. Informationen zum Zugriff auf die Spezifikation finden Sie unter C#-Sprachspezifikation.

Siehe auch

C#-Referenz
C#-Programmierhandbuch
Umwandlung und Typkonvertierungen
Operator ()
Tabelle ganzzahliger Typen
Tabelle integrierter Typen
Tabelle für implizite numerische Konvertierungen