[英]Obtain minimum NEGATIVE float value in C++
我在看std::numeric_limits<float>::min/max()
但看起來'min()'返回的是最小的絕對值,而不是最低的值。 使用安全嗎?
-std::numeric_limits<float>::max()
,即在最小/最大限制中是浮點對稱的嗎?
IEEE 754浮點數使用符號位進行簽名(而不是二進制補碼),所以如果您確定您的編譯器/平台使用該表示(非常常見),那么您可以使用-std::numeric_limits<float>::max()
你懷疑-std::numeric_limits<float>::max()
。
使用std :: numeric_limits :: lowest()
static _Ty __CRTDECL lowest() _THROW0()
{ // return most negative value
return (-(max)());
}
是的, float
最小值/最大值是對稱的。
如果您在搜索列表的最大值時使用最低可表示值作為初始值,請考慮使用無窮大。
對於任何具有它的數值類型, std::numeric_limits<T>::has_infinity()
將返回true
,並且std::numeric_limits<T>::infinity()
將返回一個始終求值大於任何其他非NaN值的值對於那種類型。 這個值可以被否定,並且評估的價值低於其他任何值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.