在编写一些代码以确保用户输入有效时,我遇到了一个问题 std::numeric_limits<T>::min();
其中 T 是浮点类型,即 double/float 等。
使用 -std::numeric_limits<double>::max();
让我得到真正的最小值,但你会期望 std::numeric_limits<double>::min();
返回那个。
为什么 std::numeric_limits<double>::min();
不返回这些类型的最小可能值,而是强制我们使用 std::numeric_limits::lowest
或 -std::numeric_limits<double>::max();
?
最佳答案
是的,使用 -max()
将给出最低值。
在 C++11 中还有 std::numeric_limits::lowest
对实数和整数是一致的。
http://en.cppreference.com/w/cpp/types/numeric_limits/lowest
另见 How to workaround the inconsistent definition of numeric_limits<T>::min()?
关于c++ - 带有浮点/ double 值的 std::numeric_limits<T>::min() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700975/