【发布时间】:2016-09-28 12:00:46
【问题描述】:
问: DBL_MIN 是最小的正双精度数吗?
下面的代码似乎没有回答这个问题。但如果这是真的,那么 DBL_MIN 是如何定义的,它的用途或目的是什么。
平台:Windows7 和 Visual Studio 2013
double next_to_zero = std::nextafter(0.0,DBL_MIN);
bool b = DBL_MIN <= next_to_zero;
std::cout << std::boolalpha
<< "is dbl_min the smallest representable double? "
<< b << '\n';
std::cout << std::setprecision(56)
<< "dbl_min = " << DBL_MIN << '\n'
<< "next to zero = " << next_to_zero;
输出:
dbl_min 是最小的可表示双精度数吗?假的
dbl_min = 2.2250738585072013830902327173324040642192159804623318306e-308
零旁边 = 4.9406564584124654417656879286822137236505980261432476443e-324
【问题讨论】:
-
C++ std::numeric_limits::min 文档:en.cppreference.com/w/cpp/types/numeric_limits/min
标签: c++ language-lawyer numeric