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 |
---|---|
byte, ushort, uint, ulong ou char |
|
Sbyte ou char |
|
sbyte, byte, ushort, uint, ulong ou char |
|
sbyte, byte, short ou char |
|
sbyte, byte, short, ushort, uint, ulong, ou char |
|
sbyte, byte, short, ushort, int ou char |
|
sbyte, byte, short, ushort, int, uint, ulong ou char |
|
sbyte, byte, short, ushort, int, uint, long ou char |
|
sbyte, byte ou short |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, ou decimal |
|
sbyte, byte, short, ushort, int, uint, long, ulong, char, float, ou 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#)
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#)