Type Casting Parte 1
Parte de la sección Fundamentos del Journey de C++ de Coddy. Lección 14 de 74.
La conversión de tipos es el proceso de convertir un valor de un tipo de datos a otro.
En C++, podemos convertir enteros en números de doble precisión, números de doble precisión en enteros y mucho más. Hay dos tipos de conversión de tipos: implícita (automática) y explícita (manual).
Por ejemplo, Integer to Double:
Conversión implícita (automática):
int number = 5;
double decimal = number; // se convierte automáticamente en 5.0
// con cálculo
int x = 7;
double result = x / 2.0; // el resultado es 3.5Nota: Al dividir dos valores int, C++ realiza una división entera: se descarta la parte decimal. Por ejemplo, 7 / 2 da como resultado 3, no 3.5. Para obtener un resultado decimal, al menos un operando debe ser un double (por ejemplo, 7 / 2.0 da como resultado 3.5).
Conversión explícita (manual) de Double to Integer:
double decimal = 9.7;
int number = (int) decimal; // se convierte en 9 (la parte decimal se trunca)
// con cálculo
double price = 19.99;
int roundedPrice = (int) price; // se convierte en 19Estilo preferido en C++ moderno: En lugar de la conversión de estilo C (int) decimal, es una práctica recomendada usar static_cast<>(), ya que es más segura y expresa con mayor claridad tu intención:
double decimal = 9.7;
int number = static_cast<int>(decimal); // se convierte en 9 (la parte decimal se trunca)
double price = 19.99;
int roundedPrice = static_cast<int>(price); // se convierte en 19Nota: Tanto (int) value como static_cast<int>(value) producen el mismo resultado aquí, pero static_cast<>() es el enfoque recomendado en C++ moderno, ya que hace que la conversión sea claramente visible y el compilador la comprueba.
Desafío
PrincipianteEscribe un programa en C++ que demuestre la conversión de tipos. Realiza lo siguiente:
Convierte la variable price a int y almacena el resultado en una nueva variable llamada intPrice.
Pruébalo tú mismo
#include <iostream>
int main() {
// Declarar e inicializar variables
double price = 99.99;
int intPrice = ?; // Casting explícito de double a int
// Mostrar los valores
std::cout << "Price: " << price << std::endl;
std::cout << "Int Price: " << intPrice << std::endl;
return 0;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador móduloIncremento/DecrementoPost-incremento/decrementoAtajos aritméticosOperadores de comparaciónComparación de strings7Conceptos básicos de Entrada/Salida
Sentencia coutSentencia cinEntrada de cadenasResumen - Hasta 120Resumen - Verdadero o Falso5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 38Calculadora de números
Mensaje de bienvenidaObtención de números3Variables Parte 2
Declaración de tiposConvenciones de nomenclaturaResumen - Inicializar variablesType Casting Parte 1Type Casting Parte 26Toma de decisiones
Sentencia IfIf - ElseSentencia SwitchOperador condicionalRepaso - If ElseIf - Else anidadosPractica por tu cuenta: Compilador de C++ online