Tableau des conversions numériques explicites (référence C#)Explicit Numeric Conversions Table (C# Reference)

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 quand il n’existe pas de conversion implicite.Explicit numeric conversion is used to convert any numeric type to any other numeric type, for which there is no implicit conversion, by using a cast expression. Le tableau suivant liste ces conversions.The following table shows these conversions.

Pour plus d’informations sur les conversions, consultez Cast et conversions de types.For more information about conversions, see Casting and Type Conversions.

DeFrom ÀTo
sbytesbyte byte, ushort, uint, ulong ou charbyte, ushort, uint, ulong, or char
bytebyte Sbyte ou charSbyte or char
shortshort sbyte, byte, ushort, uint, ulong ou charsbyte, byte, ushort, uint, ulong, or char
ushortushort sbyte, byte, short ou charsbyte, byte, short, or char
intint sbyte, byte, short, ushort, uint, ulong ou charsbyte, byte, short, ushort, uint, ulong,or char
uintuint sbyte, byte, short, ushort, int ou charsbyte, byte, short, ushort, int, or char
longlong sbyte, byte, short, ushort, int, uint, ulong ou charsbyte, byte, short, ushort, int, uint, ulong, or char
ulongulong sbyte, byte, short, ushort, int, uint, long ou charsbyte, byte, short, ushort, int, uint, long, or char
charchar sbyte, byteou shortsbyte, byte, or short
floatfloat sbyte, byte, short, ushort, int, uint, long, ulong, char ou decimalsbyte, byte, short, ushort, int, uint, long, ulong, char,or decimal
doubledouble sbyte, byte, short, ushort, int, uint, long, ulong, char, float ou decimalsbyte, byte, short, ushort, int, uint, long, ulong, char, float,or decimal
decimaldecimal sbyte, byte, short, ushort, int, uint, long, ulong, char, float ou doublesbyte, byte, short, ushort, int, uint, long, ulong, char, float, or double

RemarquesRemarks

  • La conversion numérique explicite peut produire un résultat de moindre précision ou entraîner la levée d’exceptions.The explicit numeric conversion may cause loss of precision or result in throwing exceptions.

  • Quand 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.When you convert a decimal value to an integral type, this value is rounded towards zero to the nearest integral value. Si la valeur intégrale obtenue se trouve en dehors de la plage du type de destination, une exception OverflowException est levée.If the resulting integral value is outside the range of the destination type, an OverflowException is thrown.

  • Quand vous convertissez une valeur double ou float en type intégral, la valeur est tronquée.When you convert from a double or float value to an integral type, the value is truncated. 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é.If the resulting integral value is outside the range of the destination value, the result depends on the overflow checking context. Dans un contexte vérifié, une exception OverflowException est levée, alors que dans un contexte non vérifié, le résultat est une valeur non spécifiée du type de destination.In a checked context, an OverflowException is thrown, while in an unchecked context, the result is an unspecified value of the destination type.

  • Quand vous convertissez double en float, la valeur double est arrondie à la valeur float la plus proche.When you convert double to float, the double value is rounded to the nearest float value. 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.If the double value is too small or too large to fit into the destination type, the result will be zero or infinity.

  • Dans le cas d’une conversion de float ou double en decimal, la valeur source est convertie en une représentation decimal et arrondie au nombre le plus proche après la 28ème décimale, si nécessaire.When you convert float or double to decimal, the source value is converted to decimal representation and rounded to the nearest number after the 28th decimal place if required. Selon la valeur de la valeur source, la conversion peut aboutir à l’un des résultats suivants :Depending on the value of the source value, one of the following results may occur:

    • Si la valeur source est trop petite pour être représentée en tant que decimal, le résultat est zéro.If the source value is too small to be represented as a decimal, the result becomes zero.

    • 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.If the source value is NaN (not a number), infinity, or too large to be represented as a decimal, an OverflowException is thrown.

  • Quand vous convertissez decimal en float ou double, la valeur decimal est arrondie à la valeur double ou float la plus proche.When you convert decimal to float or double, the decimal value is rounded to the nearest double or float value.

Pour plus d’informations sur la conversion explicite, consultez Conversions explicites dans la spécification du langage C#.For more information on explicit conversion, see Explicit in the C# Language Specification. Pour plus d’informations sur l’accès à la spécification, consultez Spécification du langage C#.For more information on how to access the spec, see C# Language Specification.

Voir aussiSee Also

Référence C#C# Reference
Guide de programmation C#C# Programming Guide
Cast et conversions de typesCasting and Type Conversions
(), opérateur() Operator
Tableau des types intégrauxIntegral Types Table
Tableau des types intégrésBuilt-In Types Table
Tableau des conversions numériques implicitesImplicit Numeric Conversions Table