28
numeric_limits<T>::min();
numeric_limits<T>::lowest();

两个函数返回的值有什么不同?

4

3 回答 3

24

C++11 标准的第 18.3.2.4 段规定:

static constexpr T min() noexcept;

1 最小有限值。

2 对于具有非规范化的浮点类型,返回最小正规范化值。

3 对所有专业都有意义

[...]

static constexpr T lowest() noexcept;

6 一个有限值 x,使得在 y < x 处没有其他有限值 y。

7 对于 is_bounded != false 的所有特化都有意义。

脚注 197 然后添加了相关注释:

lowest()是必要的,因为并非所有浮点表示都有一个最小(最负)值,它是最大(最正)有限值的负值。

于 2013-04-03T09:30:53.360 回答
9

对于浮点类型min,返回类型中可> 0表示的最小有限数(即具有最低绝对值的数!= 0),同时lowest返回可表示的最小有限数(即小于 的最大绝对值的负数-infinity)。

于 2013-04-03T09:30:31.960 回答
0

如果您检查这些功能的参考,例如this one forminthis one forlowest您可以看到有一些不同的值。

于 2013-04-03T09:28:41.283 回答