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