Conteúdo do Curso
Introdução ao C++
Introdução ao C++
Tipos de Dados Numéricos
Números inteiros
Os tipos de dados inteiros são os mais comumente usados para números inteiros. O tipo de dado int
pode armazenar valores dentro do intervalo de -2147483648 a 2147483647.
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; }
Isso acontece porque quando você declara uma variável int
, ela aloca exatamente 4 bytes de memória do seu PC. E números acima de 2147483647(ou abaixo de -2147483648) não cabem dentro desses 4 bytes. Felizmente, existem outros tipos de dados disponíveis que podem alocar mais (ou menos) espaço conforme suas necessidades. Aqui está a tabela:
Tipo de dado | Tamanho | |
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Você pode usar long
para armazenar números grandes (por exemplo, a população mundial). Também é possível utilizar short
se você estiver certo de que o seu número não excederá o intervalo de -32768 a 32767 (por exemplo, para armazenar a idade de um usuário). Usar short
ocupará menos espaço.
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
Tenha cuidado com o tipo de dado que você escolhe. Se o intervalo de um tipo for excedido, o compilador de C++ não irá avisar você sobre isso, e você obterá um valor inesperado sem saber que algo está errado.
Números de ponto flutuante
Os tipos de dados mencionados anteriormente são projetados para armazenar números inteiros. Se tentássemos atribuir 1.6
a um deles, aqui está o que obteríamos:
main
#include <iostream> int main() { int num = 1.6; std::cout << num << std::endl; }
O tipo int
ignora a parte decimal de um número. O mesmo acontece com short
ou long
. Para armazenar números de ponto flutuante (decimais), devemos usar o tipo de dado float
ou double
.
Tipo de dado | Precisão | Tamanho |
float | 7 dígitos decimais | 4 bytes |
double | 15 dígitos decimais | 8 bytes |
Aqui está um exemplo de utilização do tipo double
para armazenar 1.6
.
main
#include <iostream> int main() { double num = 1.6; std::cout << num << std::endl; }
Já que o tipo float
possui apenas uma precisão de 7 dígitos, o número 123.456789
já está fora do seu alcance. Isso pode levar a resultados imprecisos (como mostrado no exemplo abaixo). Portanto, é melhor usar double
por padrão a menos que você esteja seguro de que a precisão de float
é 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, você pode usar float
ou double
para armazenar números inteiros, já que esses são números decimais com parte decimal igual a 0. No entanto, como uma boa prática, se uma variável armazena valores que só podem ser números inteiros (por exemplo, população ou curtidas), deve-se usar short
/int
/long
.
main
#include <iostream> int main() { float price = 100; std::cout << "Price is: " << price << std::endl;; }
Obrigado pelo seu feedback!