Вопрос

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

Прежде чем спросить, это для Project Euler, так что да, мне делать нужно более 17 цифр. :)

РЕДАКТИРОВАТЬ: Спасибо за быстрые ответы. Я только что подтвердил, что могу получить только 18 десятичных цифр, используя <=> в моей системе.

Это было полезно?

Решение

Вы можете узнать с помощью std::numeric_limits:

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

Другие советы

Вы можете использовать < cfloat > , В частности:

LDBL_DIG
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top