Conteúdo do Curso
Introdução ao C++
Introdução ao C++
Tipos de Dados Numéricos
Números inteiros
Os tipos de dados Integer são os mais comumente usados para números inteiros. O tipo de dado int
pode conter valores dentro do intervalo 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; }
Isso ocorre porque quando você declara uma variável int
, ela aloca exatamente 4 bytes da memória do seu PC. E números acima de 2147483647
(ou abaixo de -2147483648
) não se encaixam nesses 4 bytes. Felizmente, existem outros tipos de dados disponíveis que podem alocar mais (ou menos) espaço para suas necessidades. Aqui está a tabela:
Tipo de Dado | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Portanto, você pode usar long
para armazenar números grandes (por exemplo, população mundial). Você também pode usar short
se estiver certo de que o seu número não excederá a faixa de -32,768
a 32,767
(por exemplo, armazenando a idade de um usuário). Usar short
ocupará menos espaço de memória.
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
Tenha cuidado com o tipo de dados que você seleciona. Se o intervalo de um tipo for excedido, o compilador C++ não vai notificar você, e você pode receber um valor inesperado sem nenhuma indicação de erro.
Números de ponto flutuante
Os tipos de dados mencionados são projetados para armazenar números inteiros. Se tentássemos atribuir 1.6
a um deles, aqui está o que aconteceria:
main
#include <iostream> int main() { // Change the data type to `float` o `double` int num = 1.6; std::cout << num << std::endl; }
O tipo int
trunca a parte decimal de um número. Este comportamento é o mesmo para os tipos short
e long
. Para armazenar números de ponto flutuante (decimais)**, você deve usar o tipo de dado float
ou double
.
Tipo de Dado | ||
---|---|---|
float | ||
double |
Aqui está um exemplo de como usar double
para armazenar 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
Como o tipo
float
possui apenas uma precisão de sete dígitos, o número 123.456789 já está fora de seu alcance. Isso pode levar a resultados imprecisos (como mostrado no exemplo abaixo). Portanto, é melhor usardouble
por padrão, a menos que você tenha certeza de que a precisão defloat
seja suficiente.
Obviamente, você pode usar float
ou double
para armazenar números inteiros, já que esses são números decimais com uma 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 utilizar short
/int
/long
.
Obrigado pelo seu feedback!