26

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

在你问之前,这是针对欧拉计划的,所以是的,我确实需要超过 17 位数字。:)

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

4

2 回答 2

36

您可以通过以下方式找到std::numeric_limits

#include <iostream>     // std::cout
#include <limits>       // std::numeric_limits
int main(){
    std::cout << std::numeric_limits<long double>::digits10 << std::endl;
}
于 2009-01-24T16:13:29.760 回答
6

您可以使用<cfloat>。具体来说:

LDBL_DIG
于 2009-01-24T16:17:21.670 回答