Menu
Coddy logo textTech

Conversión de tipos Parte 1

Parte de la sección Fundamentals del Journey de C de Coddy — lección 13 de 63.

La conversión de tipos (type casting) en C te permite convertir un valor de un tipo de datos a otro. Esto es útil cuando necesitas realizar operaciones entre diferentes tipos de datos.

Hay dos tipos principales de conversión de tipos (type casting):

  1. Conversión implícita (automática)
  2. Conversión explícita (manual)

Comencemos con la conversión implícita:

La conversión implícita ocurre automáticamente al convertir de un tipo de datos más pequeño a uno más grande:

int num = 10;
double decimal_num;

// Conversión implícita de int a double
decimal_num = num;

Después de ejecutar el código anterior, decimal_num tendrá el valor 10.0

Esto funciona porque un double puede almacenar todos los valores posibles de un int sin perder ningún dato. La conversión es segura, por lo que C lo hace automáticamente.

Rutas comunes de conversión implícita (implicit casting):

  • char → int → long → float → double

Ahora veamos la conversión explícita:

La conversión explícita (casting) se realiza manualmente colocando el tipo de dato de destino entre paréntesis antes del valor que se desea convertir. Esto es necesario cuando se convierte de un tipo de dato más grande a uno más pequeño, donde puede ocurrir una pérdida de datos:

double decimal_num = 5.65;
int num;

// Conversión explícita de double a int
num = (int)decimal_num;

Después de ejecutar el código anterior, num tendrá el valor 5

Ten en cuenta que la parte decimal se trunca (no se redondea) al realizar el casting de double a int. La sintaxis para el casting explícito es:

(target_type) value

Debido a que esta conversión puede perder datos, C requiere que lo hagas explícitamente; esto le indica al compilador que eres consciente de la posible pérdida de datos.

challenge icon

Desafío

Fácil

Escribe un programa que:

  1. Declare una variable double result y le asigne el valor 5.65
  2. Declare una variable int grade
  3. Asigne el valor de result a grade utilizando una conversión explícita (explicit casting)
  4. Imprima el valor de grade con el mensaje "The grade is: " usando printf

Hoja de referencia

Conversión implícita (Implicit casting) — conversión automática de un tipo más pequeño a uno más grande:

int num = 10;
double decimal_num = num; // se convierte en 10.0

Ruta común de conversión implícita: char → int → long → float → double

Conversión explícita (Explicit casting) — conversión manual usando (target_type) value:

double decimal_num = 5.65;
int num = (int)decimal_num; // se convierte en 5 (truncado, no redondeado)

Use la conversión explícita al convertir de un tipo más grande a uno más pequeño, donde puede ocurrir pérdida de datos.

Pruébalo tú mismo

#include <stdio.h>

int main() {
    double result = 5.65;
    int grade;
    
    // Usa una conversión explícita (casting) para convertir result (double) a grade (int)
    
    printf("The grade is: %d\n", grade);
    
    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 Fundamentals