Partager via


Tableau des conversions numériques explicites (référence C#)

Une conversion numérique explicite permet de convertir, à l'aide d'une expression de cast, n'importe quel type numérique en un autre type numérique lorsqu'il n'existe pas de conversion implicite. Le tableau suivant répertorie ces conversions explicites.

From

Pour

sbyte

byte, ushort, uint, ulong ou char

byte

Sbyte ou char

short

sbyte, byte, ushort, uint, ulong ou char

ushort

sbyte, byte, short ou char

int

sbyte, byte, short, ushort, uint, ulong, ou char

uint

sbyte, byte, short, ushort, int ou char

long

sbyte, byte, short, ushort, int, uint, ulong ou char

ulong

sbyte, byte, short, ushort, int, uint, long ou char

char

sbyte, byte ou short

float

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

double

sbyte, byte, short, ushort, int, uint, long, ulong, char, float, ou decimal

decimal

sbyte, byte, short, ushort, int, uint, long, ulong, char, float ou double

Notes

  • Une conversion numérique explicite peut produire un résultat de moindre précision ou entraîner la levée d'exceptions.

  • Lorsque vous convertissez une valeur de type decimal en type intégral, la valeur source est arrondie vers zéro à la valeur intégrale la plus proche. Si la valeur intégrale obtenue se trouve en dehors de la plage du type de destination, une exception OverflowException est levée.

  • Lorsque vous convertissez une valeur double ou float en un type intégral, la valeur est tronquée. Si la valeur intégrale obtenue est en dehors de la plage de la valeur de destination, le résultat dépend du contexte de vérification de dépassement de capacité. Dans un contexte vérifié (checked), une exception OverflowException est levée, alors que dans un contexte non vérifié (unchecked), le résultat est une valeur non spécifiée du type de destination.

  • Lorsque vous convertissez double en float, la valeur double est arrondie à la valeur float la plus proche. Si la valeur double est inférieure ou supérieure à la plage de valeurs autorisées pour le type de destination, la conversion a pour résultat la valeur zéro ou un nombre infini.

  • Dans le cas d'une conversion de float ou double en decimal, la valeur source est convertie en une représentation decimal et arrondie, si nécessaire, au nombre le plus proche après la 28ème décimale. Selon la valeur de la valeur source, la conversion peut avoir l'un des résultats suivants :

    • Si la valeur source est trop petite pour être représentée en tant que decimal, le résultat est zéro.

    • Si la valeur source est une valeur non numérique (NaN), un nombre infini ou une valeur trop grande pour être représentée au format decimal, une exception OverflowException est levée.

  • Lorsque vous convertissez decimal en float ou double, la valeur decimal est arrondie au double le plus proche ou à la valeur float.

Pour plus d'informations sur la conversion explicite, consultez Conversions explicites, dans la spécification du langage C#. Pour plus d'informations sur l'accès à la spécification, consultez Spécification du langage C#.

Voir aussi

Référence

Cast et conversions de types (Guide de programmation C#)

(), opérateur (référence C#)

Tableau des types intégraux (référence C#)

Tableau des types intégrés (référence C#)

Tableau des conversions numériques implicites (référence C#)

Concepts

Guide de programmation C#

Autres ressources

Référence C#