c ++中long double的确切范围是多少?
what is the exact range of long double in c++?
我已经用谷歌搜索了几个小时,但仍然找不到 “c++ 中 long double 的范围是多少” 的确切结果。有人说 long double
与 double
相同。但是 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
当然,它可能因您的平台而异。
我已经用谷歌搜索了几个小时,但仍然找不到 “c++ 中 long double 的范围是多少” 的确切结果。有人说 long double
与 double
相同。但是 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
当然,它可能因您的平台而异。