我在對象中有兩個雙重數據元素。如何將一個double值設置爲「非值」
有時他們被設置爲一個適當的值,有時不是。當他們的值被接受的表單域沒有被填充時,我想將它們設置爲某個值,告訴我,在其餘的代碼中,表單域保留爲空。
我不能將值設置爲空,因爲這會給出錯誤,是否有某種方法可以使它們成爲'未定義'。
PS。我不僅不確定這是否可能,它可能也沒有意義。但是如果在這種情況下有一些最佳做法,我會很樂意聽到。
我在對象中有兩個雙重數據元素。如何將一個double值設置爲「非值」
有時他們被設置爲一個適當的值,有時不是。當他們的值被接受的表單域沒有被填充時,我想將它們設置爲某個值,告訴我,在其餘的代碼中,表單域保留爲空。
我不能將值設置爲空,因爲這會給出錯誤,是否有某種方法可以使它們成爲'未定義'。
PS。我不僅不確定這是否可能,它可能也沒有意義。但是如果在這種情況下有一些最佳做法,我會很樂意聽到。
兩個顯而易見的選擇:
Double
而不是double
。然後您可以使用null
,但您已經大幅改變了涉及的內存模式。使用「不是一個數字」(NaN)值:
double d = 5.5;
System.out.println(Double.isNaN(d)); // false
d = Double.NaN;
System.out.println(Double.isNaN(d)); // true
注意,在「正常」的數字一些其他的操作可以給你NaN值以及雖然(0例如除以0)。
謝謝...... NaN會解決我的目的。我不會對這些數字進行任何算術運算,這樣做會很好。 – Ankur 2010-06-01 09:20:02
要小心'NaN',使用'=='和它們總是返回'false',即使'Double.NaN == Double.NaN'也是'false'。您必須使用'Double.isNaN(...)'來檢查'double'是不是一個數字。 – Jesper 2010-06-01 09:38:58
我也經常使用「Double = null」技巧。我更喜歡NaN選項,因爲NaN可能會作爲一個值出現,並且因爲「null for unset」是Java中的常見做法。 – sleske 2010-06-01 10:31:41
你給我舉幾個例子 – ratty 2010-06-01 09:09:32