C ++中long double的精度是多少?

时间:2009-01-24 16:08:21

标签: c++ precision long-double

有谁知道如何在特定平台上找出long double的精确度?在17位十进制数后,我似乎失去了精度,这与我使用double时的精度相同。我希望得到更多,因为double在我的平台上用8个字节表示,而long double是12个字节。

在你问之前,这是针对Project Euler的,所以是的,我需要超过17位。 :)

编辑:感谢您的快速回复。我刚刚确认在我的系统上使用long double只能得到18位小数。

2 个答案:

答案 0 :(得分:34)

您可以找到std::numeric_limits

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

答案 1 :(得分:5)

您可以使用<cfloat>。具体做法是:

LDBL_DIG