Incrível!
Completion taxa melhorada para 4.35single
Nú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.
1double 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
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
1std::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
1long double pi = 3.141592653589793238462643L;
Se você obteve zeros na saída, certifique-se de ter atribuído os valores exatamente como mostrado acima (1/3., 1/3.L).
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.
- Inicialize uma variável
floatcom o valor1/3.; - Inicialize uma variável
doublecom o valor1/3.; - Inicialize uma variável
long doublecom o valor1/3.L.
nota:long doubleocupa 16 bytes de memória em nosso sistema - Defina a precisão da saída para 25 casas decimais com
setprecision(25); - Imprima todos esses valores multiplicados por eles mesmos.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo