Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Tipos de Datos Numéricos | Variables y Tipos de Datos
Introducción a C++
course content

Contenido del Curso

Introducción a C++

Introducción a C++

1. Comenzando
2. Introducción a los Operadores
3. Variables y Tipos de Datos
4. Introducción al Flujo del Programa
5. Introducción a las Funciones

bookTipos de Datos Numéricos

Números enteros

Los tipos de datos enteros son los más comúnmente utilizados para números enteros. El tipo de datos int puede contener valores dentro del rango de -2,147,483,648 a 2,147,483,647.

cpp

main

copy
12345678910
#include <iostream> int main() { int goodNumber = 12; int tooLarge = 2147483648; std::cout << "Printing goodNumber: " << goodNumber << std::endl; std::cout << "Printing tooLarge: " << tooLarge << std::endl; }

Eso ocurre porque cuando declaras una variable int, se asignan exactamente 4 bytes de la memoria de tu PC. Y los números por encima de 2147483647 (o por debajo de -2147483648) no caben dentro de esos 4 bytes. Afortunadamente, hay otros tipos de datos disponibles que pueden asignarte más (o menos) espacio según tus necesidades. Aquí está la tabla:

Tipo de Dato
Rango
Tamaño
short
-32,768 a 32,767
2 bytes
int
-2,147,483,648 a 2,147,483,647
4 bytes
long
-9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
8 bytes

Por lo tanto, puedes usar long para almacenar números grandes (por ejemplo, la población mundial). También puedes utilizar short si estás seguro de que tu número no excederá el rango de -32,768 a 32,767 (por ejemplo, al almacenar la edad de un usuario). Usar short ocupará menos espacio en la memoria.

cpp

main

copy
123456789101112
#include <iostream> int main() { short age = 22; int likes = 143200; long population = 8200000000; std::cout << "Age: " << age << std::endl; std::cout << "Likes: " << likes << std::endl; std::cout << "World's population: " << population << std::endl; }

Nota

Ten cuidado con el tipo de datos que eliges. Si el rango de un tipo es superado, el compilador de C++ no te notificará, y podrías recibir un valor inesperado sin ninguna indicación de error.

Números de punto flotante

Los tipos de datos mencionados anteriormente están diseñados para almacenar números enteros. Si intentáramos asignar 1.6 a uno de ellos, esto es lo que obtendríamos:

cpp

main

copy
12345678
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }

El tipo int trunca la parte decimal de un número. Este comportamiento es el mismo para los tipos short y long. Para almacenar números de punto flotante (decimales), deberías usar el tipo de dato float o double.

Tipo de Dato
Precisión
Tamaño
float
7 dígitos decimales
4 bytes
double
15 dígitos decimales
8 bytes

Aquí hay un ejemplo del uso de double para almacenar 1.6.

cpp

main

copy
12345678910
#include <iostream> int main() { float floatNum = 123.45678; double doubleNum = 123.45678; std::cout << "using float:" << floatNum - 123 << std::endl; std::cout << "using double:" << doubleNum - 123 << std::endl; }

Nota

Dado que el tipo float solo tiene una precisión de siete dígitos, el número 123.456789 ya excede su rango. Esto puede llevar a resultados inexactos (como se muestra en el ejemplo a continuación). Por lo tanto, es mejor usar double por defecto a menos que estés seguro de que la precisión de float es suficiente.

Obviamente, puedes utilizar float o double para almacenar números enteros ya que estos son números decimales con una parte decimal igual a 0. Sin embargo, como buena práctica, si una variable almacena valores que únicamente pueden ser números enteros (por ejemplo, población o "likes"), se debería usar short/int/long.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3
some-alt