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 utilizados para los 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 tooLarge: " << tooLarge << std::endl; std::cout << "Printing goodNumber: " << goodNumber << std::endl; }
Esto ocurre porque cuando declaras una variable int
, se asignan exactamente 4 bytes de la memoria de tu PC. Y los números superiores a 2147483647(o inferiores a -2147483648) no caben en esos 4 bytes. Por suerte, otros tipos de datos disponibles pueden asignarte más(o menos) espacio para tus necesidades. Aquí tienes la tabla:
Tipo de Dato | Tamaño | |
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Por tanto, puedes utilizar 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). Utilizar short
ocupará menos espacio.
main
#include <iostream> int main() { short age = 22; int likes = 143200; long population = 7900000000; 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 excedido, el compilador de C++ no te lo dirá, y obtendrás un valor inesperado sin saber que algo va mal.
Números en coma flotante
Los tipos de datos anteriores 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() { int num = 1.6; std::cout << num << std::endl; }
El tipo int
ignora la parte decimal de un número. Lo mismo ocurre con short
o long
. Para almacenar los números de coma flotante (decimales), debemos utilizar el tipo de datos float
o double
.
Tipo de Dato | Precisión | Tamaño |
float | 7 decimal digits | 4 bytes |
double | 15 decimal digits | 8 bytes |
Este es un ejemplo de uso de double
para almacenar 1.6
.
main
#include <iostream> int main() { double num = 1.6; std::cout << num << std::endl; }
Nota
Dado que el tipo
float
sólo tiene una precisión de 7 dígitos, el número123.456789
ya está fuera de su rango. Puede dar lugar a resultados inexactos (como se muestra en el ejemplo siguiente). Así que es mejor usardouble
por defecto a menos que estés seguro de que la precisión defloat
es suficiente.
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; }
Obviamente, puede utilizar float
o double
para almacenar números enteros, ya que son números decimales con una parte decimal igual a 0. Sin embargo, como buena práctica, si una variable almacena valores que sólo pueden ser números enteros (por ejemplo, población o gustos), se debe utilizar short
/int
/long
.
main
#include <iostream> int main() { float price = 100; std::cout << "Price is: " << price << std::endl;; }
¡Gracias por tus comentarios!