0

edittext から double を解析しようとしていますが、数値形式の例外エラーが引き続き発生します。

私は最初にこれを試しました...

premiumvalue = Double.parseDouble(premium.getText().toString());         
amountweightvalue = Double.parseDouble(amountweight.getText().toString());

それからこれを試みました...無駄に。

try{
    premiumvalue = Double.parseDouble(premium.getText().toString());
} catch (final NumberFormatException e) {
    premiumvalue = 0;
}
try{
    amountweightvalue = Double.parseDouble(amountweight.getText().toString());
} catch (final NumberFormatException e) {
    premiumvalue = 0;
}

私は初心者であり、これを修正するための助けをいただければ幸いです。

4

1 に答える 1

0

私はあなたのコードを自分でテストして、次の可能性を見つけましたNumberFormatException

  1. EditText値が空白の場合、So apply condition for EditText blank value.
  2. EditText値がドット (.) のみの場合、So apply condition for EditText dot value.

あなたのコメントでは、これを使用していると言っています

String text = premium.getText().toString();

if(text.equals(".")||text.equals("-.")||text.equals(""))
 { 
    premium.setText("0");
 }

だから私のポイントはそれです

  1. premium両方とamountweightEditText に同じものを使用してから、文字列を解析して double にしますか??
  2. EditText の属性を設定android:inputType="numberDecimal"すると、EditText は 0-9 と . 価値。
  3. 属性を使用している場合、Edittext は空白を受け入れないため、EditText 値をトリミングする必要はありませんandroid:inputType="numberDecimal"
  4. 値を返さないnullため、状態をチェックする必要はありません。EditTextnull

私はあなたのコードをたくさんテストしましたが、NumberFormatException上記の点に従っているかどうかわかりません。

于 2012-07-24T07:24:55.207 に答える