0Pricing
C++ Academy · Lección

Tipos enteros frente a tipos de punto flotante

Elija el tipo numérico adecuado comprendiendo las diferencias de tamaño, rango y precisión.

Tipos enteros frente a tipos de punto flotante es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 1 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 dos familias de tipos numéricos: enteros (sin fracciones y exactos) y coma flotante (aproximados y con fracciones). Elija la familia adecuada para cada tarea.

Tipos enteros

Tipos enteros integrados y tamaños habituales en sistemas de 64 bits:

  • char — 1 byte
  • short — 2 bytes
  • int — 4 bytes
  • long — 4 u 8 bytes
  • long long — 8 bytes

Con signo frente a sin signo

Añada unsigned para eliminar el rango negativo. La aritmética sin signo da la vuelta módulo 2^N: a veces es útil, pero a menudo causa errores sutiles.

unsigned int u = 0;
u -= 1;  // wraps around to 4,294,967,295

Enteros de ancho fijo

Utilice los tipos de <cstdint> cuando necesite tamaños exactos, por ejemplo, para protocolos, formatos de archivo o portabilidad entre plataformas.

#include <cstdint>
int8_t   tiny  = 100;
int32_t  word  = 100000;
int64_t  big   = 1LL << 40;
uint64_t huge  = 18446744073709551615ULL;

Tipos de coma flotante

Tres tipos de coma flotante con precisión creciente:

  • float — 32 bits, aproximadamente 7 dígitos decimales
  • double — 64 bits, aproximadamente 15 dígitos decimales
  • long double — normalmente 80 o 128 bits

Formato IEEE 754

Los valores de coma flotante siguen el estándar IEEE 754: signo, exponente y mantisa. Pueden representar valores muy grandes y muy pequeños, pero no con exactitud.

Problemas de la coma flotante

La mayoría de los números decimales no se pueden representar exactamente en binario. 0.1 + 0.2 no es exactamente 0.3.

double sum = 0.1 + 0.2;
std::cout << (sum == 0.3);   // false on most systems
std::cout << sum;            // 0.3 but printed approximately

Comparar valores de coma flotante de forma segura

No compare nunca valores de coma flotante con ==. Compárelos dentro de una tolerancia pequeña (epsilon).

bool approxEqual(double a, double b, double eps = 1e-9) {
    return std::abs(a - b) < eps;
}

Valores especiales de coma flotante

Los valores de coma flotante tienen tres valores especiales: NaN (no es un número), +inf y -inf. Utilice los predicados de <cmath> para comprobarlos.

#include <cmath>
double x = std::sqrt(-1.0);
if (std::isnan(x)) std::cout << "Not a number";
if (std::isinf(x)) std::cout << "Infinity";

Cuándo utilizar cada tipo

Elija según el ámbito:

  • Conteos e índices → int o size_t
  • Cálculos científicos o gráficos → double
  • Dinero → ¡nunca double! Utilice enteros escalados (céntimos) o una biblioteca decimal

Los tamaños de los tipos varían según la plataforma

El estándar solo garantiza tamaños mínimos. int puede tener 16, 32 o 64 bits. Para lograr portabilidad, utilice tipos de ancho fijo de <cstdint> en las estructuras de datos.

Comprobación rápida

¿Qué tipo debe utilizar para representar valores monetarios con precisión?

Resumen

Los enteros son exactos; los valores de coma flotante son aproximados. Elija int o enteros de ancho fijo para los conteos, double para cálculos científicos y no utilice nunca valores de coma flotante para dinero. Compare los valores de coma flotante con una tolerancia, nunca con ==.

Preguntas frecuentes

¿La lección «Tipos enteros frente a tipos de punto flotante» es gratis?

Sí — el texto completo de «Tipos enteros frente a tipos de punto flotante» 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 «Tipos enteros frente a tipos de punto flotante»?

Elija el tipo numérico adecuado comprendiendo las diferencias de tamaño, rango y 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 1 de 4.

¿Cuánto tiempo toma la lección «Tipos enteros frente a tipos de punto flotante»?

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. Tipos enteros frente a tipos de punto flotante
  2. La cabecera cmath: pow, sqrt, abs y round
  3. Números aleatorios con la cabecera random
  4. Límites numéricos y comportamiento de overflow
← Volver a C++ Academy