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 (C#-Programmierhandbuch).
Von |
To |
---|---|
byte, ushort, uint, ulong oder char |
|
Sbyte oder char |
|
sbyte, byte, ushort, uint, ulong oder char |
|
sbyte, byte, short oder char |
|
sbyte, byte, short, ushort, uint, ulongoder char |
|
sbyte, byte, short, ushort, int oder char |
|
sbyte, byte, short, ushort, int, uint, ulong oder char |
|
sbyte, byte, short, ushort, int, uint, long oder char |
|
sbyte, byte oder short |
|
sbyte, byte, short, ushort, int, uint, long, ulong, charoder decimal |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, floatoder 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
Referenz
Umwandlung und Typkonvertierungen (C#-Programmierhandbuch)
Tabelle ganzzahliger Typen (C#-Referenz)
Tabelle integrierter Typen (C#-Referenz)
Tabelle für implizite numerische Konvertierungen (C#-Referenz)