0Pricing
C Academy · Lección

Conversiones entre enteros y flotantes

Problemas de precisión

Conversiones entre enteros y flotantes es una lección gratuita de C Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C Academy incluye 4 lecciones en total.

Dos mundos numéricos

C tiene enteros, exactos y sin fracción, y números en coma flotante, aproximados y con fracción. Convertir entre ellos cambia la forma en que se almacena un valor.

#include <stdio.h>
int main(void) {
    int i = 10;
    double d = 10.5;
    printf("%d %.1f\n", i, d);
    return 0;
}

Ampliación de int a double

La mayoría de los valores int caben exactamente en un double, por lo que la ampliación es segura.

#include <stdio.h>
int main(void) {
    int n = 1000;
    double d = n;
    printf("d = %.1f\n", d);
    return 0;
}

Reducción de double a int

Pasar de double a int trunca hacia cero y puede provocar pérdida de información.

#include <stdio.h>
int main(void) {
    double d = 12.75;
    int n = (int)d;
    printf("n = %d\n", n);
    return 0;
}

Truncamiento de números negativos

Truncar hacia cero significa que -2.9 se convierte en -2, no en -3.

#include <stdio.h>
int main(void) {
    double d = -2.9;
    int n = (int)d;
    printf("n = %d\n", n);
    return 0;
}

Precisión de float frente a double

float admite aproximadamente 7 dígitos significativos y double, unos 15. Convertir double a float provoca pérdida de precisión.

#include <stdio.h>
int main(void) {
    double d = 3.14159265358979;
    float f = (float)d;
    printf("%.5f\n", f);
    return 0;
}

De int grande a float

Es posible que un int muy grande no se pueda representar exactamente en un float, lo que produce un resultado redondeado.

#include <stdio.h>
int main(void) {
    int big = 16777217;
    float f = (float)big;
    printf("%.1f\n", f);
    return 0;
}

Redondear frente a truncar

El cast trunca. Para redondear, añada primero 0.5, en el caso de valores positivos, o use funciones de biblioteca.

#include <stdio.h>
int main(void) {
    double d = 4.6;
    int truncated = (int)d;
    int rounded = (int)(d + 0.5);
    printf("%d %d\n", truncated, rounded);
    return 0;
}

Cálculo de promedios

Para calcular el promedio de enteros necesita una división en coma flotante que conserve la fracción.

#include <stdio.h>
int main(void) {
    int sum = 7, count = 2;
    double avg = (double)sum / count;
    printf("avg = %.2f\n", avg);
    return 0;
}

El problema de la igualdad de los float

Como los números en coma flotante son aproximados, compararlos con == es arriesgado. Compárelos dentro de una tolerancia pequeña.

#include <stdio.h>
#include <math.h>
int main(void) {
    double a = 0.1 + 0.2;
    if (fabs(a - 0.3) < 1e-9)
        printf("close enough\n");
    return 0;
}

Mezclas en condiciones

Al comparar un int con un double, el int se promociona, por lo que la comparación se realiza en coma flotante.

#include <stdio.h>
int main(void) {
    int n = 3;
    double d = 3.5;
    if (n < d)
        printf("3 < 3.5\n");
    return 0;
}

Elegir el tipo adecuado

Use enteros para cantidades e índices, y números en coma flotante para medidas y proporciones.

#include <stdio.h>
int main(void) {
    int items = 4;
    double pricePer = 2.5;
    printf("total = %.2f\n", items * pricePer);
    return 0;
}

Comprobación rápida

Compruebe sus conocimientos sobre las conversiones entre enteros y números en coma flotante.

Repaso: conversiones entre enteros y números en coma flotante

Ha aprendido cómo cambian los números al pasar de un tipo a otro.

  • De int a double normalmente se amplía de forma segura
  • De double a int se trunca hacia cero
  • float conserva menos dígitos que double
  • Redondee sumando 0.5 o utilizando funciones de biblioteca
  • Evite == con números en coma flotante; use una tolerancia

Preguntas frecuentes

¿La lección «Conversiones entre enteros y flotantes» es gratis?

Sí — el texto completo de «Conversiones entre enteros y flotantes» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C Academy, actualiza a CoddyKit PRO. El curso de C Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Conversiones entre enteros y flotantes»?

Problemas de precisión Practicas C Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C Academy?

No se requiere experiencia previa. C Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Conversiones entre enteros y flotantes»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C Academy?

Sí. Cada lección de C Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conversiones implícitas
  2. Conversiones explícitas
  3. Conversiones entre enteros y flotantes
  4. Errores en conversiones
← Volver a C Academy