Menu
Coddy logo textTech

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 a doubles, doubles a enteros y más. Existen dos tipos de conversión (casting): implícita (automática) y explícita (manual).

Por ejemplo Integer to Double:

Casting implícito (automático):

int number = 5;
double decimal = number; // automáticamente se convierte en 5.0

// con cálculo
int x = 7;
double result = x / 2.0; // el resultado es 3.5

Nota: Al dividir dos valores int, C++ realiza una división entera — la parte decimal se descarta. Por ejemplo, 7 / 2 da 3, no 3.5. Para obtener un resultado decimal, al menos un operando debe ser un double (por ejemplo, 7 / 2.0 da 3.5).

Conversión explícita (manual) 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 19

Estilo preferido de C++ moderno: En lugar del moldeado al estilo C (int) decimal, es mejor práctica utilizar static_cast<>(), que es más seguro y más explícito sobre su 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 19

Nota: 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 es verificada por el compilador.

challenge icon

Desafío

Principiante

Escribe un programa en C++ que demuestre la conversión de tipos (type casting). Realiza lo siguiente:

Convierte la variable price a un int y almacena el resultado en una nueva variable llamada intPrice.

Hoja de referencia

La conversión de tipos (type casting) convierte valores de un tipo de datos a otro.

Conversión implícita (automática) — ocurre automáticamente:

int number = 5;
double decimal = number; // automáticamente se convierte en 5.0

int x = 7;
double result = x / 2.0; // el resultado es 3.5 (int/int descarta los decimales)

Conversión explícita (manual) — estilo C y el moderno static_cast:

double price = 19.99;

int a = (int) price;                  // estilo C: se convierte en 19
int b = static_cast<int>(price);     // preferido en C++ moderno: se convierte en 19

Nota: Convertir un double a int trunca (elimina) la parte decimal. static_cast<>() es preferible en C++ moderno por claridad y seguridad del compilador.

Pruébalo tú mismo

#include <iostream>

int main() {
    // Declarar e inicializar variables
    double price = 99.99;
    int intPrice = ?; // Conversión explícita de double a int
    
    
    // Mostrar los valores
    std::cout << "Price: " << price << std::endl;
    std::cout << "Int Price: " << intPrice << std::endl;
    
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos