2011-02-24 60 views
6

如果我的浮點變量設置爲0,我的代碼正在工作,但如果我的變量爲空,我希望我的代碼能夠工作。我怎麼能這樣做?下面的代碼片段我寫道:如何清空浮點類型的變量

float oikonomia= (float)((float)new Float(vprosvasis7.getText().toString())); 

         if(oikonomia==0){ 

我已經綁if(oikonomia==null)if(oikonomia=null),但它無法正常工作。

P.S .:另一種方法是初始設置oikonomia=0;,如果用戶更改它,請轉到我的if會話。這也不起作用。

Float oikonomia = Float.valueOf(vprosvasis7.getText()。toString());

     if(oikonomia.toString() == " "){ 



float oikonomia= (float)((float)new Float(vprosvasis7.getText().toString())); 
        oikonomia=0; 
         if(oikonomia==0){ 

這種方式是不是工作壓力太大:

Float oikonomia = Float.valueOf(vprosvasis7.getText().toString()); 

         if(oikonomia.toString() == " "){ 

回答

14

如果你想有一個可爲空浮,然後嘗試Float代替float

Float oikonomia= new Float(vprosvasis7.getText().toString()); 

但它永遠不會是null這樣的在你的例子中...

編輯:啊,我開始明白你的問題是什麼。你真的不知道vprosvasis7包含什麼,以及它是否被正確初始化爲一個數字。所以試試這個,然後:

Float oikonomia = null; 

try { 
    oikonomia = new Float(vprosvasis7.getText().toString()); 
} 
catch (Exception ignore) { 
    // We're ignoring potential exceptions for the example. 
    // Cleaner solutions would treat NumberFormatException 
    // and NullPointerExceptions here 
} 

// This happens when we had an exception before 
if (oikonomia == null) { 
    // [...] 
} 

// This happens when the above float was correctly parsed 
else { 
    // [...] 
} 

當然,有很多方法可以簡化上述並編寫更簡潔的代碼。但我認爲這應該解釋如何正確和安全地將String解析爲float而不會遇到任何例外......

+0

我可以讓它開始0; – 2011-02-24 16:42:57

+0

感謝隊友!!這就是我尋找! – 2011-02-24 18:05:16

+0

這就是我想的:) – 2011-02-24 18:15:52

3

浮動和浮動不是同一回事。 Java中的「float」類型是一個不能爲空的原始類型。

1

或許你也應該做這樣的事情

浮動oikonomia = Float.valueOf(vprosvasis7.getText()的toString());

如果您嘗試解析不轉換爲有效數字的字符串,您將得到NumberFormatException。所以你可以簡單地將這個語句包裝在try catch塊中並正確處理錯誤。

希望有所幫助。

+0

可以請你寫下代碼嗎?我得到一個NumberFormatException..thanks !!:D – 2011-02-24 16:28:41

0

試試這個:

Float oikonomia = null; 
try{ 
    oikonomia = Float.valueOf(vprosvasis7.getText().toString()); 
}catch(numberFormatException e){ 
    // logging goes here 
} 

現在的值是非法的(非浮動)字符串的情況下,NULL。