C/C 有標準的符號功能嗎?
問題:
我我正在尋找一個函數,它對於負數輸出 -1,對於正數輸出 1。儘管它很簡單,但我懷疑這個功能可能在某個標準庫中可用。具體來說,我需要一個對浮點資料類型進行操作的函數。
答案:
是的,有一個標準 C 函數可以用於此目的,稱為 Signum。但是,需要注意的是,該函數是類型安全的,這意味著它可以對各種資料類型進行操作,而不僅僅是浮點數。這是Signum 的通用實作:
template <typename T> int sgn(T val) { return (T(0) < val) - (val < T(0)); }
與自訂實作相比,此函數具有多個優點:
用法:
int sign = sgn(-1.5); // -1 sign = sgn(0.0); // 0 sign = sgn(3.14); // 1
用法:
以上是C/C 有浮點數的標準符號函數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!