Java 为什么parse int会引发十进制数异常?

Java 为什么parse int会引发十进制数异常?,java,android,Java,Android,如果我在EditText中输入任何数字,我不会得到异常。但如果我输入一个带小数的数字,我得到 java.lang.NumberFormatException:无效的int:“55555.96” 字符串inputamount中的值对于decimal number来说是可以的,而当它被解析为int时,只有当它是decimal number时才会出现此错误。 当我尝试使用parseInt、valueOf、long。。总之,我得到了这个例外 EditText xml: <EditText

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

java.lang.NumberFormatException:无效的int:“55555.96”

字符串inputamount中的值对于decimal number来说是可以的,而当它被解析为int时,只有当它是decimal number时才会出现此错误。 当我尝试使用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 ii=0;

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

因为55555.96不是整数?您可以将其解析为
double
并在以后进行取整
55555.96
不是整数。您可以对Long类型变量使用
Long.parseLong()
,对Float类型使用
Float.parseFloat()
,而不是
Integer.parseInt()
。正如Thilo所说,我这样使用,效果很好。Double dblInputAmount1=Double.parseDouble(inputamount.toString());
 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());
 }
amount=(EditText) findViewById(R.id.editText);
String inputamount = amount.getText().toString();
int ii=0;

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