Contenido del Curso
Introducción a C++
Introducción a C++
Tipos 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
.
main
#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 | ||
short | 2 bytes | |
int | 4 bytes | |
long | 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.
main
#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:
main
#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 | ||
float | ||
double |
Aquí hay un ejemplo del uso de double
para almacenar 1.6
.
main
#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 usardouble
por defecto a menos que estés seguro de que la precisión defloat
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
.
¡Gracias por tus comentarios!