我试图从EditText获取一个String并解析为double。但是我收到了错误。
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 :(得分:1)
我明白了:
if( controle.equals(null) || controle.equals("")){
custo = 0.0;
} else {
custo = Double.parseDouble(controle);
}
错误是我没有使用.equals来比较字符串。
感谢您的回答。
答案 1 :(得分:0)
尝试使用以下内容更改if
语句:
if( controle == null || controle.trim() == "" || !controle.matches("\d+\.\d+|\d+")).
类似的东西:
String controle = "";
controle = etCustoNovoCheckin.getText().toString();
if( controle == null || controle.trim() == "" || !controle.matches("\d+\.\d+|\d+")){
custo = 0.0;
}
else {
custo = Double.parseDouble(controle);
}
答案 2 :(得分:0)
试试这个..
String controle = "";
controle = etCustoNovoCheckin.getText().toString();
if(controle.trim().length()>0){
custo = Double.parseDouble(controle);
}
else {
custo = 0.0;
}
答案 3 :(得分:0)
如果您的EditText-Box只支持数字,请设置EditText-Box属性。
android:inputType="number"
你没有陷入这种“麻烦”