我的理解是,NaN(不是數字)是essentaly從數學函數返回的常量,表示出錯或計算無效。因此,它們是檢測數字是否爲NaN或更好的函數是合理的,使用CERT編碼標準對數學錯誤進行錯誤檢查(https://www.securecoding.cert.org/confluence/display/c/FLP32-C.+Prevent+or+detect+domain+and+range+errors+in+math+functions)。C++爲什麼要將某些東西轉換成NaN?
我的問題是這樣的;爲什麼std :: nan()存在?爲什麼你會想要一個有效的數字/字符串/值並將其轉換爲NaN? (Refrence:http://en.cppreference.com/w/cpp/numeric/math/nan)
完整性與標準。 NaN可以有不同的值。可能有必要爲測試代碼創建特定的NaN,以便進行比較。甚至有必要在運行時檢測特定的NaN。 – davidbak
這是否意味着存在一系列代表特定錯誤的NaN常量? – Katianie
我不確定,但我懷疑有這樣的NaN常量的_standard_集合。但是你的特定CPU /協處理器/數學庫可能有文檔來指示它可能返回的某些特定值... – davidbak