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.

È stato utile?

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
scroll top