Qual é a precisão de long double em C ++?
-
20-08-2019 - |
Pergunta
Alguém sabe como descobrir a precisão de long double
em uma plataforma específica? I parecem estar perdendo precisão depois de 17 dígitos decimais, que é a mesma de quando eu uso apenas double
. Eu esperaria para obter mais, uma vez double
é representado com 8 bytes em minha plataforma, enquanto long double
é de 12 bytes.
Antes que você pergunte, isto é para projeto Euler, então sim, eu fazer precisa de mais de 17 dígitos. :)
EDIT: Obrigado pelas respostas rápidas. Eu só confirmou que eu só pode obter 18 dígitos decimais, utilizando long double
no meu sistema.
Solução
Você pode descobrir com std::numeric_limits
:
#include <iostream> // std::cout
#include <limits> // std::numeric_limits
int main(){
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow