Double a = Double.NaN;
//第壹種 前兩種要求類型是Double即包裝類
System.out.println(a.equals(Double.NaN));
//第二種
System.out.println(a.equals(0.0d / 0.0));
//第三種 使用Double的靜態方法,方法實現就是第四種 類型無要求
System.out.println(Double.isNaN(a));?
//第四種 利用NaN自己和自己不相等的特性, ?
//要求類型必須是double,不能是包裝類,否則結果是false ?
//因為包裝類是引用類型,比較的!=是地址的比較而不是值的比較。
double b = Double.NaN;
System.out.println(b != b);
擴展資料:
實際開發中常常遇到這種需求:double類型的數據如果為空,就展示空字符串;如果為0,就展示0。
壹般是這樣做,新建壹個model,和數據庫裏的字段,數據類型壹壹對應。然後把數據庫裏的數據取到這個model的集合裏,然後進行進壹步處理。
這時候就有個問題,比如double類型會默認初始化為0,這樣就無法區分數據庫裏是0值還是null。
解決方法壹
再從數據庫中獲取妳所需要的數據的條數。這樣如果值為0且數據條數小於等於0,這種情況就是空值;否則就是0.
解決方法二
可空類型。double,有0值就是0,沒有值就是null。