为什么解析int会抛出十进制数的异常?

时间:2015-05-15 05:21:48

标签: java android

如果我在EditText中输入任何数字,我就不会得到异常。但是,如果我输入一个带小数的数字,我得

  

java.lang.NumberFormatException:无效的int:" 55555.96"

String inputamount中的值对于十进制数是正常的,而当它被解析为int时,只有当它是十进制数时才会出现此错误。 当我尝试使用parseInt,valueOf,long ..总之,我得到了这个异常。

EditText xml:

<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/editText"
    android:padding="-11dp"
    android:width="300dp"
    android:inputType="numberDecimal"
    android:digits="0123456789.00"
    android:textSize="34sp"
    android:editable="true"
    android:layout_below="@+id/listView2"
    android:textStyle="bold"
    android:maxLength="20"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="163dp"
    android:hint="Payment"
    android:maxWidth="222dp" />

代码:

 amount=(EditText) findViewById(R.id.editText);
 String inputamount = amount.getText().toString();
 int iii = Integer.valueOf( inputamount.toString());
 int ii=0;
 ii=Integer.parseInt(inputamount.toString());
 long lg=Integer.parseInt(inputamount);

2 个答案:

答案 0 :(得分:0)

使用以下代码行

 amount=(EditText) findViewById(R.id.editText);
 String inputamount = amount.getText().toString();
 if(inputamount.contains("."))
 {
   float jjj =Float.valueOf(inputamount.toString())
 }
 else
 {
   int iii = Integer.valueOf( inputamount.toString());
 }

答案 1 :(得分:0)

试试这个

amount=(EditText) findViewById(R.id.editText);
String inputamount = amount.getText().toString();
int ii=0;

double d =Double.parseDouble(inputamount.toString().trim());
ii = (int) d;