浮點計算中,判斷"非數"NaN的一個簡單方法, 變量居然可以"自己不等于自己"
double a = sqrt(-1.0); //負數開平方,返回NaN雙精度數
if(a != a) //通過自己不等于自己簡單判斷
{
printf("NaN\n");
}
雙精度數的分類,標準庫提供了完整方法,上面的方法可以簡單判斷NaN
double a = sqrt(-1.0); //負數開平方,返回NaN雙精度數
if(a != a) //通過自己不等于自己簡單判斷
{
printf("NaN\n");
}
雙精度數的分類,標準庫提供了完整方法,上面的方法可以簡單判斷NaN
@ly
1.0/0.0得到的是"正無窮",不是NaN,所以不行
浮點數的詳細分類建議使用_fpclass函數
想給一個浮點變量直接賦值為"正無窮", double v = numeric_limits<double>::infinity() 回復 更多評論
樓主辛苦了,
我想說的是:
有個東西叫Double.isNaN(a)
回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|