Qual è la precisione del doppio lungo in C ++?

Qualcuno sa come scoprire la precisione del long double su una piattaforma specifica? Mi sembra che stia perdendo precisione dopo 17 cifre decimali, che è lo stesso di quando uso solo il double . Mi aspetterei di ottenere di più, dal momento che il double è rappresentato con 8 byte sulla mia piattaforma, mentre il long double è di 12 byte.

Prima di chiedere, questo è per Project Euler, quindi sì ho bisogno di più di 17 cifre. 🙂

EDIT: Grazie per le risposte veloci. Ho appena confermato che posso ottenere solo 18 cifre decimali usando il long double sul mio sistema.

Puoi scoprire con std::numeric_limits :

 #include  // std::cout #include  // std::numeric_limits int main(){ std::cout << std::numeric_limits::digits10 << std::endl; } 

Puoi usare . In particolare:

 LDBL_DIG