c ++中long double的确切范围是多少?

what is the exact range of long double in c++?

我已经用谷歌搜索了几个小时,但仍然找不到 “c++ 中 long double 的范围是多少” 的确切结果。有人说 long doubledouble 相同。但是 sizeof double 是 8 个字节,sizeof long double 是 16 个字节。请注意,我正在使用 gcc。

为什么不问问你的编译器? std::numeric_limits<long double> 已定义。

long double smallest = std::numeric_limits<long double>::min();
long double largest = std::numeric_limits<long double>::max();
long double lowest = std::numeric_limits<long double>::lowest();
std::cout << "lowest " << lowest << std::endl;
std::cout << "largest " << largest << std::endl;
std::cout << "smallest " << smallest << std::endl;

运行 godbolt.org with x86-64 GCC 11.2 上的这段代码给我:

lowest -1.18973e+4932
largest 1.18973e+4932
smallest 3.3621e-4932

当然,它可能因您的平台而异。