DBL_MIN是最小的正双精度数吗?
Is DBL_MIN the smallest positive double?
Q: DBL_MIN是最小的正双精度体吗?
下面的代码似乎用no来回答这个问题。但是,如果这是真的,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.22507385850720138309023271733240642192159804623318306e -308
接近零= 4.9406564584124654417656879286822137236505980261432476443e-324
我将这个答案限制为IEEE754浮点数,这可能是不必要的。
DBL_MIN
不允许是次正常数。
但是允许std::nextafter
返回一个低于正常的数。
因此后者的返回值可以小于DBL_MIN
。
详细信息请参见https://en.wikipedia.org/wiki/Denormal_number
DBL_MIN
是最小的正双元吗?
不肯定。DBL_MIN
为最小正正 double
。
DBL_TRUE_MIN
是最小的正double
(自c++ 17以来)。当double
支持亚法线时,它将小于DBL_MIN
。
相关文章:
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 正在将csv文件读取为双精度矢量
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 如何在C++中的同一函数中使用字符串和双精度
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 检查是否以特定精度给出双精度
- 转换函数,将 std::数组的双精度作为参数或双精度作为参数单独转换
- C 字符串返回字符串的整数/双精度/长整型值
- 为什么将双精度转换为 int 似乎在第 16 位数字之后将其四舍五入?
- 如何使双精度值的 C++ 和 C# 中的结果相同
- 使用浮点数和双精度数的非常小数字的数学
- 使用 Xcode 将双精度存储在数组C++中
- 在 C++ 中将双精度变量写入二进制文件
- 如何从字符串转换为双精度*
- 为什么我的数组双精度函数不起作用?
- 高精度双精度的 Sprintf 格式化问题
- C++ cout 将双精度对齐到精度 2 并正确对齐
- 将指针数组分配给双精度
- C++如何将字符串逐行转换为双精度
- 带有<T>浮点/双精度值的 std::numeric_limits::min() 的问题