Какова точность long double в C++?

кто-нибудь знает, как выяснить точность long double на определенной платформе? Кажется, я теряю точность после 17 десятичных цифр, что совпадает с тем, когда я просто использую double. Я ожидал бы получить больше, так как double представлен с 8 байтами на моей платформе, в то время как long double Это 12 байт.

прежде чем вы спросите, это для проекта Эйлер, так что да я do нужно больше, чем 17 цифр. :)

EDIT: Спасибо за быстрый отвечает. Я только что подтвердил, что могу получить только 18 десятичных цифр с помощью long double на моей системе.

2 ответов


Вы можете узнать std::numeric_limits:

#include <iostream>     // std::cout
#include <limits>       // std::numeric_limits
int main(){
    std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}

можно использовать . В частности:

LDBL_DIG