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.

El casting de tipos en C te permite convert un valor de un tipo de datos a otro. Esto resulta útil cuando necesitas realizar operaciones entre distintos tipos de datos.

Hay dos tipos principales de conversión de tipos:

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

Comencemos con el casting implícito:

El Implicit casting ocurre automatically 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 casting implícito:

  • char → int → long → float → double

Ahora veamos el casting explícito:

Explicit casting se realiza manualmente colocando el tipo de datos de destino entre paréntesis antes del valor que quieres convert. Esto es necesario al convertir de un tipo de datos más grande a uno más pequeño, donde puede producirse una pérdida de datos:

double decimal_num = 5.65;
int num;

// Casting explícito de double a int
num = (int)decimal_num;

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

Observa que la parte decimal se truncated (no se rounded) al hacer casting de double a int. La sintaxis para el explicit casting es:

(target_type) value

Debido a que esta conversión puede perder datos, C requiere que la hagas de forma explícita. 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 5.65
  2. Declare una variable int grade
  3. Asigne el valor de result a grade mediante explicit casting
  4. Imprima el valor de grade con el mensaje "The grade is: " usando printf

Pruébalo tú mismo

#include <stdio.h>

int main() {
    double result = 5.65;
    int grade;
    
    // Usa el casting explícito 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

Practica por tu cuenta: Compilador de C online