String servicePrice = serviceListArrayList.get(position).getPrice();
System.out.println ("Price======>"+servicePrice);
price = Integer.parseInt(servicePrice);
System.out.println("IntPrice====>"+price);
我想将此servicePrice值转换为整数值,但不幸的是遇到NumberFormatException,请帮助我解决此错误。
答案 0 :(得分:1)
如果NumberFormatException
不是整数的字符串表示形式(例如servicePrice
或"1"
),则会得到一个"123"
。示例包括空字符串(""
),文本("abc"
),十进制数字("1.23"
),货币("$1.23"
或"$2"
)或不是有效的数字("1.2.3"
或"0..1"
)
如果您无法控制字符串,则需要使用适当的检查来处理是否输入了错误的值
int val = 0;
try {
val = Integer.parseInt(str);
}
catch(NumberFormatException np) {
// handle the case - e.g. error Toast message
}
答案 1 :(得分:0)
NumberFormatException 例外仅是因为servicePrice值不是数字String。 (任何不能转换为数字值的字符串值)
更好地捕捉价格= Integer.parseInt(servicePrice);
例如
try
{
price = Integer.parseInt(servicePrice);
}
catch(NumberFormatException ex)
{ // you can assign default as 0 here too.
price =0;
}
答案 2 :(得分:0)
int价格= Integer.parseInt(服务价格)
记录服务价格中存储了什么值
您只能将数字转换为String而不是字母。 您的serviceListArrayList.get(position).getPrice()可能返回带有诸如rs或dollar之类的字母的价格。 因此,请打印服务价格并检查。