项目场景:
(jjava dk1.8)问题描述:
例如: for input String:xxx@Override
public void run() {
String number='420.00000'
Integer num=Integer.parseInt(number);
}
原因分析:
Integer.parseInt()//返回初始化为指定 String 值的新的 Integer 对象。若该 String 不能作为 int 分析,则抛出异常。 字符串 “420.00000” 是不能作为 int 类型解析的,所以抛出了异常。解决方案:
@Override
public void run() {
String num = "420.0";
Double d = Double.parseDouble(num); // 先转换成double类型
Integer i = d.intValue(); // 再转换成int类型(会损失精度)
System.out.println(i); // 打印结果
}
遇到这样的需求,应该先转换成 Double 类型,再将 Double 类型强制转换成 int 类型