c++中的不是數的數nan


matlab中經常碰到nan,inf等特殊“數”,而在C++中也有相應的表示:例如std::numeric_limits <float>::quiet_NaN ();可以得到浮點型的nan,

但是最近在使用中發現一個奇怪的現象,

編譯環境 Ubuntu12.04 & Qt 5.0.2 & g++4.4

當g++添加fast-math編譯參數時,即.pro文件中添加選項QMAKE_CXXFLAGS += -ffast-math
此時產生nan再用isnan判斷的時候居然是返回false。。。

int main()
{
    const static float f_nan = std::numeric_limits <float>::quiet_NaN ();
    if (std::isnan(f_nan))
        cout<<"nan"<<endl;
    cout << "Hello World!" << endl;
    return 0;
}

運行結果:

Hello World!

 

搞不懂為什么

先mark一下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM