簡體   English   中英

在C ++中獲得最小的NEGATIVE浮點值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM