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 dato 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; }
Esto sucede porque cuando declaras una variable int
, se asignan precisamente 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 usar short
si estás seguro de que tu número no excederá el rango de -32,768
a 32,767
(por ejemplo, almacenar la edad de un usuario). Usar short
ocupará menos espacio de 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 dato que seleccionas. Si el rango de un tipo es excedido, 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 intentamos 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), debes usar el tipo de dato float
o double
.
Tipo de Dato | ||
---|---|---|
float | ||
double |
Aquí hay un ejemplo de 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 está fuera de su rango. 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 usar float
o double
para almacenar números enteros ya que esos son números decimales con una parte decimal igual a 0. Sin embargo, como buena práctica, si una variable almacena valores que solo pueden ser números enteros (por ejemplo, población o likes), se deben usar short
/int
/long
.
¡Gracias por tus comentarios!