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 -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 acontece porque quando você declara uma variável int
, ela aloca precisamente 4 bytes da memória do seu PC. E números acima de 2147483647
(ou abaixo de -2147483648
) não cabem dentro desses 4 bytes. Felizmente, outros tipos de dados disponíveis podem alocar mais (ou menos) espaço para suas necessidades. Aqui está a tabela:
Tipo de Dados | ||
---|---|---|
short | 2 bytes | |
int | 4 bytes | |
long | 8 bytes |
Portanto, você pode usar long
para armazenar números grandes (por exemplo, a população mundial). Você também pode usar short
se tiver certeza de que seu número não excederá o intervalo de -32,768
a 32,767
(por exemplo, armazenar 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 dado que você seleciona. Se o intervalo de um tipo for excedido, o compilador C++ não irá notificá-lo, e você pode receber um valor inesperado sem qualquer indicação de erro.
Números de ponto flutuante
Os tipos de dados acima 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() { // 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. Esse 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 uso de 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
tem apenas uma precisão de sete 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 usardouble
por padrão, a menos que você tenha certeza de que a precisão defloat
é 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 boa prática, se uma variável armazena valores que só podem ser números inteiros (por exemplo, população ou curtidas), short
/int
/long
devem ser usados.
Obrigado pelo seu feedback!