浮點(diǎn)計算中,判斷"非數(shù)"NaN的一個簡單方法, 變量居然可以"自己不等于自己"
double a = sqrt(-1.0); //負(fù)數(shù)開平方,返回NaN雙精度數(shù)
if(a != a) //通過自己不等于自己簡單判斷
{
printf("NaN\n");
}
雙精度數(shù)的分類,標(biāo)準(zhǔn)庫提供了完整方法,上面的方法可以簡單判斷NaN
double a = sqrt(-1.0); //負(fù)數(shù)開平方,返回NaN雙精度數(shù)
if(a != a) //通過自己不等于自己簡單判斷
{
printf("NaN\n");
}
雙精度數(shù)的分類,標(biāo)準(zhǔn)庫提供了完整方法,上面的方法可以簡單判斷NaN
a=1.0/0.0; 測試不出來。。。 回復(fù) 更多評論
@ly
1.0/0.0得到的是"正無窮",不是NaN,所以不行
浮點(diǎn)數(shù)的詳細(xì)分類建議使用_fpclass函數(shù)
想給一個浮點(diǎn)變量直接賦值為"正無窮", double v = numeric_limits<double>::infinity() 回復(fù) 更多評論
樓主辛苦了,
我想說的是:
有個東西叫Double.isNaN(a)
回復(fù) 更多評論
| 只有注冊用戶登錄后才能發(fā)表評論。 | ||
|
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|
|