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

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, ulongoder char

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, charoder decimal

double

sbyte, byte, short, ushort, int, uint, long, ulong, char, floatoder decimal

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)

Operator () (C#-Referenz)

Tabelle ganzzahliger Typen (C#-Referenz)

Tabelle integrierter Typen (C#-Referenz)

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

Konzepte

C#-Programmierhandbuch

Weitere Ressourcen

C#-Referenz