使用 Visual Studio Community 2019 v16.4.2 和它在 64 位 Win10 上附带的最新内容。
在测试各种数据类型限制时遇到了一个奇怪的错误,numeric_limits 无法区分 double 和 long double min/max 值。使用带有默认 GNU Mac 工具链的 NetBeans 显示更合理的结果。
// Type limits: float
std::cout
<< "MIN float " << numeric_limits<float>::min() << "\n"
<< "MAX float " << numeric_limits<float>::max() << "\n"
<< "MIN double " << numeric_limits<double>::min() << "\n"
<< "MAX double " << numeric_limits<double>::max() << "\n"
<< "MIN long double " << numeric_limits<long double>::min() << "\n"
<< "MAX long double " << numeric_limits<long double>::max() << "\n";
控制台输出
MIN float 1.17549e-38 MAX float 3.40282e+38 MIN double 2.22507e-308 MAX double 1.79769e+308 MIN long double 2.22507e-308 // NetBeans on Mac 3.3621e-4932 MAX long double 1.79769e+308 // NetBeans on Mac 1.18973e+4932