Conversion de Types de Base
La conversion de type est le processus de transformation d'une valeur d'un type de données à un autre. Cela est souvent possible entre des types représentant des nombres. Par exemple, il est possible de convertir un float en int et inversement. Cependant, convertir directement une string en int n'a pas de sens logique et n'est pas possible sans étapes supplémentaires.
Il existe deux types de conversion de type : conversion de type implicite et conversion de type explicite.
La conversion de type implicite se produit automatiquement lorsqu'une valeur est convertie d'un type à un autre, généralement d'un type de données plus petit vers un type plus grand.
main.cs
1234int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
La conversion de type implicite se produit automatiquement lorsqu'un type de données plus petit est converti en un type plus grand. La taille d'un type de données est déterminée par la quantité de données qu'il peut contenir, mesurée en bits. Par exemple, un int peut contenir 32 bits, tandis qu'un long peut en contenir 64, donc la conversion d'un int en long se fait automatiquement. De même, un float peut être converti en double sans problème.
Voici une liste de types de données classés du plus petit au plus grand :
char -> int -> long -> float -> double
La conversion de type explicite intervient lorsque le programmeur indique explicitement à l'ordinateur de convertir une valeur vers un autre type de données. Cela est nécessaire lors de la conversion d'un type de données plus grand vers un type plus petit, car certaines données peuvent être perdues. Par exemple, la conversion du float 3.14 en entier donne 3, la partie décimale étant perdue. C'est pourquoi il est nécessaire d'indiquer explicitement à l'ordinateur d'effectuer ce type de conversion.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
Pour corriger l’erreur dans le code ci-dessus, il est nécessaire de convertir explicitement val1 en une valeur entière.
La syntaxe d’un cast est (datatype) value, par exemple (int) 3.1415. Ainsi, dans ce cas, il faut écrire (int) val1 :
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you give an example of implicit type casting in code?
What happens if I try to cast a string to an int?
Can you explain more about explicit type casting with examples?
Génial!
Completion taux amélioré à 1.67
Conversion de Types de Base
Glissez pour afficher le menu
La conversion de type est le processus de transformation d'une valeur d'un type de données à un autre. Cela est souvent possible entre des types représentant des nombres. Par exemple, il est possible de convertir un float en int et inversement. Cependant, convertir directement une string en int n'a pas de sens logique et n'est pas possible sans étapes supplémentaires.
Il existe deux types de conversion de type : conversion de type implicite et conversion de type explicite.
La conversion de type implicite se produit automatiquement lorsqu'une valeur est convertie d'un type à un autre, généralement d'un type de données plus petit vers un type plus grand.
main.cs
1234int val1 = 10; long val2 = val1; // int is automatically converted to long float val3 = var1; // int is automatically converted to float double var4 = var1; // int is automatically converted to double
La conversion de type implicite se produit automatiquement lorsqu'un type de données plus petit est converti en un type plus grand. La taille d'un type de données est déterminée par la quantité de données qu'il peut contenir, mesurée en bits. Par exemple, un int peut contenir 32 bits, tandis qu'un long peut en contenir 64, donc la conversion d'un int en long se fait automatiquement. De même, un float peut être converti en double sans problème.
Voici une liste de types de données classés du plus petit au plus grand :
char -> int -> long -> float -> double
La conversion de type explicite intervient lorsque le programmeur indique explicitement à l'ordinateur de convertir une valeur vers un autre type de données. Cela est nécessaire lors de la conversion d'un type de données plus grand vers un type plus petit, car certaines données peuvent être perdues. Par exemple, la conversion du float 3.14 en entier donne 3, la partie décimale étant perdue. C'est pourquoi il est nécessaire d'indiquer explicitement à l'ordinateur d'effectuer ce type de conversion.
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = val1; // Error: Cannot implicitly convert type 'float' to 'int'. An explicit conversion exists (are you missing a cast?) Console.WriteLine(val1); Console.WriteLine(val2); } } }
Pour corriger l’erreur dans le code ci-dessus, il est nécessaire de convertir explicitement val1 en une valeur entière.
La syntaxe d’un cast est (datatype) value, par exemple (int) 3.1415. Ainsi, dans ce cas, il faut écrire (int) val1 :
main.cs
123456789101112131415using System; namespace ConsoleApp { internal class Program { static void Main(string[] args) { float val1 = 3.14f; int val2 = (int) val1; Console.WriteLine(val1); Console.WriteLine(val2); } } }
Merci pour vos commentaires !