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
- Conversiones implícitas
- Conversiones explícitas
- Conversiones entre enteros y flotantes
- Errores en conversiones