Qual è la precisione del doppio lungo in C ++?
-
20-08-2019 - |
Domanda
Qualcuno sa come scoprire la precisione di long double
su una piattaforma specifica? Sembra che stia perdendo precisione dopo 17 cifre decimali, lo stesso di quando uso double
. Mi aspetterei di ottenere di più, poiché <=> è rappresentato con 8 byte sulla mia piattaforma, mentre <=> è 12 byte.
Prima di chiedere, questo è per Project Euler, quindi sì devo ho bisogno di più di 17 cifre. :)
MODIFICA: Grazie per le risposte rapide. Ho appena confermato che posso ottenere solo 18 cifre decimali usando <=> sul mio sistema.
Soluzione
Puoi scoprirlo con std::numeric_limits
:
#include <iostream> // std::cout
#include <limits> // std::numeric_limits
int main(){
std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
Altri suggerimenti
Puoi utilizzare < cfloat > . In particolare:
LDBL_DIG
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow