Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Números de Dupla Precisão | Tipos de Dados Numéricos
Tipos de Dados em C++
close
Seção 2. Capítulo 5
single

single

bookNúmeros de Dupla Precisão

Deslize para mostrar o menu

A precisão de float (7 dígitos decimais) nem sempre é suficiente. Mas o C++ oferece uma solução: double. Com precisão de 15 dígitos decimais, é muito mais preciso do que float. A sintaxe para utilizar double permanece a mesma:

double.

double.

copy
1
double num = 3.14159265359;

Por padrão, cout exibe números de ponto flutuante com precisão de 6 dígitos significativos. Dessa forma, não é possível perceber a diferença entre float e double. Para definir uma precisão maior, pode-se utilizar novamente std::cout << std::setprecision(15); (isso define a precisão para 15 dígitos significativos).

Não se esqueça de incluir <iomanip> para poder utilizar std::setprecision().

main.cpp

main.cpp

copy
123456789101112131415
#include <iostream> #include <iomanip> int main() { float pi_float = 3.14159265358979; double pi_double = 3.14159265358979; std::cout << "float pi: " << pi_float << std::endl; std::cout << "double pi: " << pi_double << std::endl; std::cout << std::setprecision(15); std::cout << "float pi with setprecision: " << pi_float << std::endl; std::cout << "double pi with setprecision: " << pi_double << std::endl; }

Como é alcançada uma melhor precisão em double?

Simplesmente utiliza mais memória. Um tipo float ocupa 4 bytes, enquanto um double ocupa 8 bytes de memória.

Também existe o tipo long double. Seu tamanho varia de 8 bytes (assim como um double) até 16 bytes. Você pode verificar o tamanho do long double no seu sistema utilizando o seguinte código:

sizeof.h

sizeof.h

copy
1
std::cout << sizeof(long double);

Além disso, deve-se adicionar L ao valor que está sendo atribuído (caso contrário, o valor será atribuído com a precisão de double). Veja o exemplo:

double.h

double.h

copy
1
long double pi = 3.141592653589793238462643L;
Note
Nota

Se você obteve zeros na saída, certifique-se de ter atribuído os valores exatamente como mostrado acima (1/3., 1/3.L).

Tarefa

Swipe to start coding

É necessário calcular (1/3)² utilizando diferentes tipos de dados. Para isso, atribua o valor de 1/3 às variáveis dos tipos float, double e long double. Em seguida, imprima esses números multiplicados por eles mesmos.

  1. Inicialize uma variável float com o valor 1/3.;
  2. Inicialize uma variável double com o valor 1/3.;
  3. Inicialize uma variável long double com o valor 1/3.L.
    nota: long double ocupa 16 bytes de memória em nosso sistema
  4. Defina a precisão da saída para 25 casas decimais com setprecision(25);
  5. Imprima todos esses valores multiplicados por eles mesmos.

Solução

Switch to desktopMude para o desktop para praticar no mundo realContinue de onde você está usando uma das opções abaixo
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 5
single

single

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

some-alt