Type Casting - Partie 1
Fait partie de la section Fondamentaux du Journey C++ de Coddy. Leçon 14 sur 74.
La conversion de type est le processus qui consiste à convertir une valeur d’un type de données à un autre.
En C++, nous pouvons convertir des nombres entiers en nombres à virgule flottante, des nombres à virgule flottante en nombres entiers, et bien plus encore. Il existe deux types de conversions : les conversions implicites (automatiques) et les conversions explicites (manuelles).
Par exemple Integer to Double :
Conversion implicite (automatique) :
int number = 5;
double decimal = number; // devient automatiquement 5.0
// avec calcul
int x = 7;
double result = x / 2.0; // result vaut 3.5Remarque : Lorsque vous divisez deux valeurs de type int, C++ effectue une division entière : la partie décimale est supprimée. Par exemple, 7 / 2 donne 3, et non 3.5. Pour obtenir un résultat décimal, au moins un opérande doit être de type double (par exemple, 7 / 2.0 donne 3.5).
Conversion explicite (manuelle) de Double to Integer :
double decimal = 9.7;
int number = (int) decimal; // devient 9 (la partie décimale est tronquée)
// avec calcul
double price = 19.99;
int roundedPrice = (int) price; // devient 19Style privilégié en C++ moderne : Au lieu de la conversion de type à la manière du C (int) decimal, il est préférable d’utiliser static_cast<>(), qui est plus sûre et exprime plus clairement votre intention :
double decimal = 9.7;
int number = static_cast<int>(decimal); // devient 9 (la partie décimale est tronquée)
double price = 19.99;
int roundedPrice = static_cast<int>(price); // devient 19Remarque : (int) value et static_cast<int>(value) produisent le même résultat ici, mais static_cast<>() est l’approche recommandée en C++ moderne, car elle rend la conversion clairement visible et permet au compilateur de la vérifier.
Défi
DébutantÉcris un programme C++ qui montre la conversion de type. Effectue les opérations suivantes :
Convertis la variable price en int et stocke le résultat dans une nouvelle variable nommée intPrice.
Essayez vous-même
int intPrice = ?; // Conversion explicite de double en int
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloIncrémentation / DécrémentationPost-incrémentation / Post-décrémentationRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Bases des entrées/sorties
Instruction coutInstruction cinSaisie de chaînes de caractèresRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux3Variables - Partie 2
Déclaration de typeConventions de nommageRécapitulatif - Initialisation des variablesType Casting - Partie 1Type Casting - Partie 26Prise de décision
L'instruction IfIf - ElseL'instruction SwitchOpérateur conditionnelRécapitulatif - If ElseIf - Else imbriquésEntraînez-vous par vous-même : Compilateur C++ en ligne