double a = sqrt(-1.0); //負數開平方,返回NaN雙精度數
if(a != a) //通過自己不等于自己簡單判斷 { printf("NaN\n"); }雙精度數的分類,標準庫提供了完整方法,上面的方法可以簡單判斷NaN
posted on 2011-07-16 19:18 魏兵 閱讀(4997) 評論(5) 編輯 收藏 引用
a=1.0/0.0; 測試不出來。。。 回復 更多評論
@ly 1.0/0.0得到的是"正無窮",不是NaN,所以不行 浮點數的詳細分類建議使用_fpclass函數 想給一個浮點變量直接賦值為"正無窮", double v = numeric_limits<double>::infinity() 回復 更多評論
@魏兵原來如此,3q 回復 更多評論
好神奇!具體原理是什么呢? 回復 更多評論
樓主辛苦了,我想說的是:有個東西叫Double.isNaN(a) 回復 更多評論
Powered by: C++博客 Copyright © 魏兵