Какова точность long double в C ++?
-
20-08-2019 - |
Вопрос
Кто-нибудь знает, как узнать точность 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
Не связан с StackOverflow