Какова точность 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;
}