Predominantemente, existem três categorias principais de tipos de dados em C ++ -tipos de dados primários, derivados e definidos pelo usuário. Os tipos de dados primários em C ++ (também conhecidos como tipos de dados primitivos) são os tipos de dados que são fornecidos pela linguagem e são embutidos. O tipo de dados duplo C ++ se enquadra nesta categoria. Este tipo de dados é amplamente usado por programadores e é usado para armazenar números de ponto flutuante. Todos os números reais são valores de ponto flutuante. Uma variável pode ser declarada como double adicionando-se a palavra-chave double como seu prefixo.

Você usou principalmente este tipo de dados onde os dígitos decimais são 14 ou 15 dígitos. No entanto, deve-se usá-lo com cuidado, pois consome 8 bytes de armazenamento de memória e é um método caro.

Sintaxe de Double em C ++

A sintaxe para declarar uma variável do tipo duplo:

double variable_name;

double var_1, var_2, var_3;

Ele especifica a palavra-chave double seguida pelo nome da variável para declarar uma variável do tipo double. Os exemplos a seguir mostram diferentes maneiras de inicializar uma variável dupla:

//variáveis ​​de tipo duplo

double var1=5,999999;

double var2=5.0;

double var3=5;

double var4=-5,0000;

Como o Double Data Type funciona em C ++?

  • O duplo C ++ pode conter valores de ponto flutuante de até 15 dígitos ocupando um espaço de 8 bytes na memória.
  • O intervalo dos valores que podem ser armazenados em uma variável de tipo duplo é 1,7E-308 a 1,7E + 308.
  • O compilador em C ++, por padrão, trata cada valor como duplo e executa implicitamente uma conversão de tipo entre diferentes tipos de dados.
  • Geralmente, o tipo duplo é usado porque é mais preciso e evita a perda de dados em termos de dígitos significativos.

Destaque-se de seus colegas esta avaliação Temporada

Comece a aprender com nossos cursos GRATUITOS Inscreva-se agora

Destaque-se de seus pares nesta temporada de avaliação

Regras e regulamentos para usar Double em C ++

Não existem regras rígidas e rápidas para usar double em C ++, no entanto, existem algumas regras regulares que tornam o código mais limpo e ajudam a entender melhor o tipo de dados double.

  • O duplo C ++ deve ter uma precisão de ponto flutuante de até 15 dígitos, pois contém uma precisão que é duas vezes a precisão do tipo de dados flutuante.
  • Ao declarar uma variável como double, você deve inicializá-la com um valor decimal. Por exemplo, 3.0 é um número decimal. No entanto, se você inicializá-lo com 3, também funcionará bem porque, embora 3 e 3.0 pareçam ser idênticos, ou seja, um número inteiro, há uma grande diferença em sua representação interna.
  • Quando você realiza a operação de divisão ou multiplicação, ambos os números devem ser do tipo de dados duplos, caso contrário, pode haver perda de alguns dados.
  • Se você declarar uma variável como float e durante a inicialização você não adicionou f no final, ele a considerará como uma variável dupla. Por exemplo:

//é considerada uma variável flutuante

float n=1.414f;

//é considerada uma variável dupla

float n=1,414;

Exemplos de C ++ Double

Os exemplos a seguir ilustram o tipo de dados duplo em C ++.

Exemplo 1: programa para encontrar a área da superfície e o volume de uma esfera

#include

usando namespace std;

//função para calcular a área de superfície e o volume

//de uma esfera

esfera vazia (raio interno)

{

//variáveis ​​para conter valores duplos

double surfaceArea, sphereVolume;

surfaceArea=4 * 3,14 * raio * raio;

sphereVolume=(surfaceArea * radius)/3;

cout <<"A área da superfície da esfera é:"<

cout <<"\ n \ nO volume da esfera é:"<

}

int main ()

{

raio interno=6;

esfera (raio);

cout <<"\ n \ n";

return 0;

}

Cpp_Double_1.

No exemplo acima, as variáveis ​​surfaceArea e sphereVolume do tipo double são declaradas para armazenar os resultados calculados na função sphere (). A função encontra a área da superfície e o volume de uma esfera, que podem ser valores de ponto flutuante.

Exemplo 2: Programa para realizar operações aritméticas com valores de tipo duplo

#include

usando namespace std;

double findSum (double x, double y)

{

return x + y;

}

double findDifference (double x, double y)

{

return x-y;

}

double findProduct (double x, double y)

{

return x * y;

}

double findQuotient (double x, double y)

{

return x/y;

}

int main ()

{

duplo valor1=10,45, valor2=6,28;

cout <<"A soma é:"<

cout <<"A diferença é:"<

cout <<"O produto é:"<

cout <<"O quociente é:"<

return 0;

}

Cpp_Double_2

No exemplo acima, as operações aritméticas básicas, adição, subtração, multiplicação e divisão são realizadas em dois operandos duplos valor1 e valor2. O resultado de sua divisão produz 1,664012738, mas apenas 6 dígitos são impressos porque o cout imprime apenas 6 dígitos por padrão, arredondando o valor.

Exemplo 3: programa para encontrar a raiz do cubo de um número

#include

usando namespace std;

double findCube (double num)

{

double ans;

precisão dupla=0,000001;

//calcule a parte inteira

para (double ans=1; (ans * ans * ans) <=num; ++ ans)

;

ans–;

//Calcule a parte fracionária

para (ans; (ans * ans * ans)

;

return ans;

}

int main ()

{

int num=5;

cout <<"A raiz cúbica do número é:";

cout <

return 0;

}

Cpp_Double_3

No exemplo acima, ele calcula a raiz cúbica de um inteiro. Ele armazena o resultado em uma dupla variável ans.

Diferença entre flutuante e duplo

Em C ++, float e double são usados ​​para armazenar números de ponto flutuante. Os valores de pontos flutuantes são números reais, por exemplo: 1801,0,-4,258 ou 0,08244. Esses dois tipos de dados diferem um do outro de várias maneiras. Agora, entenda como o float difere do double C ++.

Float: o tipo float C ++ é um tipo de dados primitivo que contém valores flutuantes de até 7 dígitos.

Duplo: o C ++ duplo também é um tipo de dados primitivo usado para armazenar valores de ponto flutuante de até 15 dígitos.

O programa a seguir ilustra a diferença entre C ++ float e C ++ double:

#include

usando namespace std;

int main ()

{

//inicializar variáveis ​​flutuantes e duplas

float var1=1.1426f;//o valor flutuante deve terminar com um’f’

double var2=1,1426576;

//imprime o tamanho da variável float

cout <<"O tipo de dados float leva"<

//imprime o valor da variável dupla longa

cout <<"\ n \ nO valor armazenado na variável é:"<

cout <<"\ n \ n";

//imprime o tamanho da variável dupla longa

cout <<"O tipo de dados double long leva"<

//imprime o valor da variável dupla longa

cout <<"\ n \ nO valor armazenado na variável é:"<

cout <<"\ n \ n";

return 0;

}

Cpp_Double_4

No exemplo acima, as variáveis ​​dos tipos float e double são inicializadas com valores de ponto flutuante. O valor da variável float termina com um sufixo “f” porque o compilador, por padrão, trata todos os valores como duplos. O operador sizeof () é usado para imprimir o tamanho dos tipos de dados float e double em bytes.

O gráfico de comparação a seguir destaca a principal diferença entre o float C ++ e o duplo C ++:

FLUTUANTE

DUPLO

Float consome 4 bytes de memória para armazenamento.

O dobro consome 8 bytes de memória para armazenamento.

Float tem comparativamente menos precisão e é usado para armazenar números decimais com menos dígitos.

Double tem quase o dobro da precisão do float e é usado para armazenar números decimais com mais dígitos.

Tem uma precisão de ponto flutuante de 32 bits de acordo com o IEEE.

Ele tem uma precisão de ponto flutuante de 64 bits de acordo com o IEEE.

Ele armazena até 7 casas decimais e arredonda o restante dos dígitos.

Ele pode armazenar até 15 casas decimais sem arredondá-las.

setprecision () para especificar pontos decimais

O método setprecision () em C ++ é usado para definir a precisão dos pontos flutuantes até um certo número de dígitos significativos. Ele fornece uma maneira de controlar o número de pontos flutuantes. É útil principalmente nos casos em que o número resultante é irracional e repetitivo, ou seja, onde os pontos decimais se repetem após atingir um determinado ponto. Esta função pode ser usada no programa adicionando o arquivo de cabeçalho iomanip.

A sintaxe para o método setprecision ():

setprecision (int n)

Parâmetro

Esta função aceita um número inteiro que especifica o número de dígitos significativos até os quais a precisão deve ser definida.

Valor de retorno

Esta função não retorna nada. É apenas uma função de manipulação que formata os valores de ponto flutuante.

Os exemplos a seguir ilustram o funcionamento da função setprecision () em C ++:

Exemplo 1

#include

#include

usando namespace std;

int main ()

{

//inicializando o valor de pi

//até dois lugares

double pi=3,142857142857;

cout <<"Valor de pi antes de usar setprecision ():"

<

//Usando setprecision ()

cout <<"Usando setprecision para definir a precisão até 4:";

cout <

cout <

//Usando setprecision ()

cout <<"Usando setprecision para definir a precisão até 8:";

cout <

cout <

//definindo o valor de precisão que

//está além do número de dígitos

//no valor inicializado

cout <<"Usando o setprecision para definir a precisão até 15:";

cout <

cout <

return 0;

}

Cpp_Double_5.

No exemplo acima, embora o número total de dígitos após o decimal do valor inicializado de pi seja 13, o valor impresso contém apenas 6 casas decimais, como em MinGW. A função cout imprime o número de até 6 dígitos no máximo e trunca o restante dos dígitos decimais arredondando o valor. Você usou a função setprecision () até 4 e 8 e obteve a saída esperada, mas quando tentou definir a precisão até 15; deu os dígitos máximos do valor inicializado, que é 13.

Exemplo 2

#include

#include

usando namespace std;

int main ()

{

posição dupla=1,41421356, neg=-1,41421356;

//usando setprecision ()

cout <<"Definindo a precisão para 0: \ t";

cout <

cout <<"neg="<

//usando setprecision ()

cout <<"Definindo a precisão para 1: \ t";

cout <

cout <<"neg="<

//usando setprecision ()

cout <<"Definindo a precisão para 2: \ t";

cout <

cout <<"neg="<

//usando setprecision ()

cout <<"Definindo a precisão para 3: \ t";

cout <

cout <<"neg="<

//usando setprecision ()

cout <<"Definindo a precisão para 4: \ t";

cout <

cout <<"neg="<

}

Cpp_Double_6.

No exemplo acima, a função setprecision () é usada para definir a precisão dos valores de √2 e-√2 para 0, 1, 2, 3 e 4.

Curso Full Stack Web Developer

Para se tornar um especialista em MEAN Stack Ver Curso

Full Stack Web Developer Course

Precisões diferentes para variáveis ​​diferentes

Uma variável dupla pode armazenar um valor de ponto flutuante de precisão de até 15 dígitos. Você pode formatar o valor armazenado em uma variável dupla para diferentes precisões usando várias abordagens, como o método setprecision () ou os manipuladores como fixed, scientific, hexfloat e defaultfloat. A precisão pode ser definida especificando o número de dígitos decimais significativos. Os exemplos a seguir ilustram algumas das abordagens mais comuns para formatar variáveis ​​duplas para diferentes precisões.

Exemplo 1: usando o manipulador fixo.

#include

#include

usando namespace std;

int main () {

//variável dupla para manter um valor de ponto flutuante

double value1=3,1415926535;

//variável dupla para manter um valor exponencial

valor duplo 2=124e + 3;

//imprime os valores usando’fixo’

cout <<"O valor armazenado na primeira variável é:"<

cout <<"\ n \ n";

cout <<"O valor armazenado na segunda variável é:"<

cout <<"\ n \ n";

return 0;

}

Cpp_Double_7

No exemplo acima, o manipulador fixo da biblioteca padrão C ++ é usado para definir o número de dígitos significativos para 5, especificando a precisão. A precisão de um tipo duplo e um valor exponencial é definida usando o manipulador fixo.

Exemplo 2: usando o manipulador científico.

#include

#include

usando namespace std;

int main () {

//variável dupla para manter um valor de ponto flutuante

double value1=3,1415926535;

//variável dupla para manter um valor exponencial

valor duplo 2=124e + 3;

//Defina a precisão

cout.precision (5);

//imprime os valores usando’científico’

cout <<"O valor armazenado na primeira variável é:"<

cout <<"\ n \ n";

cout <<"O valor armazenado na segunda variável é:"<

cout <<"\ n \ n";

return 0;

}

Cpp_Double_8.

No exemplo acima, o manipulador científico da biblioteca padrão é usado para imprimir os valores armazenados nas variáveis ​​duplas. A instrução cout.precision (5) define a precisão dos dígitos em 5. Portanto, um valor duplo de 3,1415926535 é impresso no formato científico com 5 dígitos após o decimal como 3,14159e + 00.

Long Double em C ++

O long double é outro tipo de dados em C ++ que é usado para armazenar números de ponto flutuante. Ele ocupa o tamanho de até 12 bytes, enquanto o float e o double ocupam 4 bytes e 8 bytes, respectivamente. Os valores inicializados com o tipo de dados long double devem terminar com “L”. Por exemplo:

//declarando uma variável dupla longa

longo duplo n=1,414L;

O exemplo a seguir ilustra o long double em C ++:

#include

usando namespace std;

int main ()

{

//inicializa uma variável do tipo duplo longo

long double var1=1,1426e + 5;

//imprime o tamanho da variável dupla longa

cout <<"The long double take"<

//imprime o valor da variável dupla longa

cout <<"\ n \ nO valor armazenado na variável é:"<

cout <<"\ n \ n";

return 0;

}

Cpp_Double_9

No exemplo acima, uma variável dupla longa (var1) é inicializada. O operador sizeof () determina o tamanho da variável var1 em bytes. A saída exibe o tamanho da variável, por exemplo, 12 bytes e seu valor, por exemplo, 114260.

Avance sua carreira como desenvolvedor MEAN stack com o Desenvolvedor Web Full Stack-Programa MEAN Stack Master . Inscreva-se agora!

Considerações finais!

Para resumir, neste artigo você aprendeu sobre um dos tipos de dados primitivos mais populares e amplamente usados ​​em C ++, chamado tipo de dados duplo. O tipo de dados double é usado para armazenar números de ponto flutuante e você pode até definir a precisão usando métodos apropriados. Você aprendeu a sintaxe para criar um tipo de dados duplo e viu como funciona o tipo de dados duplo.

A seguir, você aprendeu algumas regras e regulamentos que deve ter em mente ao declarar tipos de dados duplos em C ++. Seguindo em frente, você viu como e onde pode usar o tipo duplo com alguns exemplos. Você entendeu a diferença fundamental entre os tipos de dados double e float e usou o método set precision para definir o número de dígitos de precisão em um valor duplo. No final, você aprendeu como usar outra variação de double chamada long double para armazenar tipos de dados double ainda maiores.

Se quiser aprender mais sobre esses conceitos fundamentais em C ++, você pode verificar nosso guia completo em C ++ para iniciantes .

Se você deseja seguir uma carreira em Full Stack Web Development, confira o programa de treinamento de 9 meses da Simplilearn em desenvolvimento web full-stack ensinado por especialistas do setor. Esses especialistas estarão à sua disposição durante toda a sua jornada para solucionar suas dúvidas. Você aprenderá habilidades e ferramentas como Java e seus frameworks, incluindo spring, hibernate, JPA, etc., metodologias ágeis , DevOps , ferramentas de front-end como CSS , HTML , JS , servlets, etc.

Se você estiver interessado em aprender mais sobre essas tecnologias, verifique nossa lista completa de cursos online gratuitos e tente alguns.

Se você tiver alguma dúvida relacionada a este artigo sobre “C ++ double” ou qualquer outra sugestão, use a caixa de comentários para deixar um comentário e nossos especialistas entrarão em contato com você o mais rápido possível.

Boa aprendizagem!

Categories: Wordpress