Pregunta

¿Alguien sabe cómo averiguar la precisión de long double en una plataforma específica? Parece que estoy perdiendo precisión después de 17 dígitos decimales, que es lo mismo que cuando uso double. Esperaría obtener más, ya que <=> está representado con 8 bytes en mi plataforma, mientras que <=> tiene 12 bytes.

Antes de preguntar, esto es para el Proyecto Euler, así que sí, do necesito más de 17 dígitos. :)

EDITAR: Gracias por las respuestas rápidas. Acabo de confirmar que solo puedo obtener 18 dígitos decimales usando <=> en mi sistema.

¿Fue útil?

Solución

Puede averiguarlo 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;
}

Otros consejos

Puede usar < cfloat > . Específicamente:

LDBL_DIG
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top