2013-09-26 77 views
0

我試圖從一個EditText獲取一個字符串並解析爲一個double。但是我得到一個錯誤。如何解析字符串加倍時解決此錯誤?

if(controle == null || controle.trim() == "" || !controle.matches("\d+\.\d+|\d+")). 

類似:

09-26 10:42:41.589: E/AndroidRuntime(17901): FATAL EXCEPTION: main 
09-26 10:42:41.589: E/AndroidRuntime(17901): java.lang.NumberFormatException: 
09-26 10:42:41.589: E/AndroidRuntime(17901): at org.apache.harmony.luni.util.FloatingPointParser.parseDouble(FloatingPointParser.java:267) 
09-26 10:42:41.589: E/AndroidRuntime(17901): at java.lang.Double.parseDouble(Double.java:318) 
09-26 10:42:41.589: E/AndroidRuntime(17901): at br.com.going2.Checkincomercial.NovoCheckinActivity$4.onClick(NovoCheckinActivity.java:219) 

代碼

String controle = ""; 
controle = etCustoNovoCheckin.getText().toString(); 
if(controle == null || controle == ""){ 
custo = 0.0; 
} else { 
custo = Double.parseDouble(controle); 
}  
+0

丘斯托是float或double? –

+0

@BrijeshPatel'double'否則'丘斯托= 0.0;'編譯錯誤 –

+0

丘斯托加倍。 – Roland

回答

0

嘗試與改變你的if聲明

String controle = ""; 
controle = etCustoNovoCheckin.getText().toString(); 
if(controle == null || controle.trim() == "" || !controle.matches("\d+\.\d+|\d+")){ 
custo = 0.0; 
} 
else { 
    custo = Double.parseDouble(controle); 
}  
0

試試這個..

   String controle = ""; 
       controle = etCustoNovoCheckin.getText().toString(); 
       if(controle.trim().length()>0){ 
       custo = Double.parseDouble(controle); 
       } 
       else { 
       custo = 0.0; 
       } 
+0

嗨upvote這個答案,如果你發現它是正確的。 –

0

我弄明白:

     if(controle.equals(null) || controle.equals("")){ 
          custo = 0.0; 
         } else { 
          custo = Double.parseDouble(controle); 
         } 

的錯誤是,我沒有使用.equals比較字符串。

感謝您的答案。

0

如果您的EditText盒應該只支持數字,設定的EditText盒屬性。

android:inputType="number" 

你不進入這個 「麻煩」