parseLong Numberformat exception 7.7

时间:2013-01-23 12:38:26

标签: android parsing android-edittext long-integer

我正在从EditText中检索一个数字:

long org=0;
String EnteredOrgAmount=amount.getText().toString();

if(!EnteredOrgAmount.equalsIgnoreCase("")) {
    org=Long.parseLong(EnteredOrgAmount);
}

这很好用,直到我输入7.7,例如,我得到一个numberFormatException。我不能使用逗号,因为我将XML中的EditText声明为:android:inputType="numberDecimal"

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

而不是在Double中解析Long解析,如果只需要long值,则解析为double并以long值存储

double org=0;
String EnteredOrgAmount=amount.getText().toString();

if(!EnteredOrgAmount.equalsIgnoreCase("")) {
    org=Double.parseDouble(EnteredOrgAmount);
}

长期只需声明组织长而不是双重

long org=0;
String EnteredOrgAmount=amount.getText().toString();

if(!EnteredOrgAmount.equalsIgnoreCase("")) {
    org=(long)Double.parseDouble(EnteredOrgAmount);
}