名稱空間
變體
操作

std::nan, std::nanf, std::nanl

來自 cppreference.com
< cpp‎ | 數值‎ | 數學
 
 
 
常用數學函式
函式
基本操作
(C++11)  
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
nannanfnanl
(C++11)(C++11)(C++11)
指數函式
(C++11)
(C++11)

(C++11)
(C++11)
冪函式
(C++11)
(C++11)
三角
雙曲函式
(C++11)
(C++11)
(C++11)

誤差函式和伽馬函式
(C++11)
(C++11)
(C++11)
(C++11)
取整浮點運算
(C++11)(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
浮點操縱函式
(C++11)(C++11)
(C++11)
(C++11)
(C++11)(C++11)
(C++11)
分類和比較
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
型別
(C++11)
(C++11)
(C++11)
宏常量
分類
(C++11)(C++11)(C++11)(C++11)(C++11)


 
定義於標頭檔案 <cmath>
float       nanf( const char* arg );
(1) (C++11 起)
double      nan ( const char* arg );
(2) (C++11 起)
long double nanl( const char* arg );
(3) (C++11 起)

將字串 arg 轉換為對應的靜默 NaN 值,如同呼叫 std::strtofstd::strtodstd::strtold

1) 呼叫 std::nanf("n-char-sequence"),其中 n-char-sequence 是數字、ASCII 字母和下劃線的序列,等同於呼叫 std::strtof("NAN(n-char-sequence)", (char**)nullptr);
呼叫 std::nanf("") 等同於呼叫 std::strtof("NAN()", (char**)nullptr);
呼叫 std::nanf("string"),其中 string 既不是 n-char-sequence 也不是空字串,等同於呼叫 std::strtof("NAN", (char**)nullptr);
2)(1),但呼叫 std::strtod 而非 std::strtof
3)(1),但呼叫 std::strtold 而非 std::strtof

目錄

[編輯] 引數

arg - 表示 NaN 內容的窄字元字串

[編輯] 返回值

與標識字串 arg 對應的靜默 NaN 值,如果實現不支援靜默 NaN,則返回零。

如果實現支援 IEEE 浮點算術(IEC 60559),則它也支援靜默 NaN。

[編輯] 錯誤處理

此函式不受 math_errhandling 中指定的任何錯誤條件的影響。

[編輯] 示例

#include <cmath>
#include <cstdint>
#include <cstring>
#include <iostream>
 
int main()
{
    double f1 = std::nan("1");
    std::uint64_t f1n; std::memcpy(&f1n, &f1, sizeof f1);
    std::cout << "nan(\"1\") = " << f1 << " (" << std::hex << f1n << ")\n";
 
    double f2 = std::nan("2");
    std::uint64_t f2n; std::memcpy(&f2n, &f2, sizeof f2);
    std::cout << "nan(\"2\") = " << f2 << " (" << std::hex << f2n << ")\n";
}

可能的輸出

nan("1") = nan (7ff0000000000001)
nan("2") = nan (7ff0000000000002)

[編輯] 參閱

(C++11)
檢查給定數字是否為 NaN
(函式) [編輯]
(C++11)
評估為 float 型別的靜默 NaN
(宏常量) [編輯]
確定可以表示特殊值“安靜的非數”(quiet not-a-number,NaN)的浮點型別
(std::numeric_limits<T> 的公共靜態成員常量) [編輯]
確定可以表示特殊值“發信的非數”(signaling not-a-number,NaN)的浮點型別
(std::numeric_limits<T> 的公共靜態成員常量) [編輯]
[靜態]
返回給定浮點型別的安靜 NaN 值
(std::numeric_limits<T> 的公共靜態成員函式) [編輯]
返回給定浮點型別的發信 NaN 值
(std::numeric_limits<T> 的公共靜態成員函式) [編輯]
C 文件 用於 nanf, nan, nanl