[英]Obtain minimum NEGATIVE float value in C++
I was looking at std::numeric_limits<float>::min/max()
but it appears 'min()' returns the smallest absolute value, not the lowest value. 我在看
std::numeric_limits<float>::min/max()
但看起来'min()'返回的是最小的绝对值,而不是最低的值。 Is it safe to use 使用安全吗?
-std::numeric_limits<float>::max()
, ie is float symmetric in min/max limits? -std::numeric_limits<float>::max()
,即在最小/最大限制中是浮点对称的吗?
IEEE 754浮点数使用符号位进行签名(而不是二进制补码),所以如果您确定您的编译器/平台使用该表示(非常常见),那么您可以使用-std::numeric_limits<float>::max()
你怀疑-std::numeric_limits<float>::max()
。
use std::numeric_limits::lowest() 使用std :: numeric_limits :: lowest()
static _Ty __CRTDECL lowest() _THROW0()
{ // return most negative value
return (-(max)());
}
Yes, float
is symmetric in minimum/maximum values. 是的,
float
最小值/最大值是对称的。
If you're using the lowest representable value as an initial value in searching a list for its maximum value, consider using infinity instead. 如果您在搜索列表的最大值时使用最低可表示值作为初始值,请考虑使用无穷大。
std::numeric_limits<T>::has_infinity()
will return true
for any numeric type that has it and std::numeric_limits<T>::infinity()
will return a value that always evaluates greater than any other non-NaN value for that type. 对于任何具有它的数值类型,
std::numeric_limits<T>::has_infinity()
将返回true
,并且std::numeric_limits<T>::infinity()
将返回一个始终求值大于任何其他非NaN值的值对于那种类型。 This value can be negated and will evaluate less than anything else. 这个值可以被否定,并且评估的价值低于其他任何值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.