一、问题描述
今天我在做软件测试的时候,出现了如下图的错误提示
出现错误的代码是:
info.weight = Long.parseLong(weight);
错误描述是:
java.lang.NumberFormatException: For input string:"300.5"
这个300.5是我输入的字符串,之前我做了几次测试都是输入的整数,是没有出现错误的。从这次的测试来看Long.parseLong()方法不支持带小数点的数值字符串。但我开发的应用,有时是需要输入带小数点的数值的。这样的错误不解决,会导致软件不能正常使用的。
二、解决办法
我在网上搜索了一阵,在一篇“Java将带小数点的String类型值转换成int值::报错 ==java.lang.NumberFormatException: For input string”博文里找到了解决思路。
用以下语句替代出错的语句即可。
info.weight = Double.valueOf(weight).longValue();
再次运行软件,输入300.5,软件正常,没有出现错误提示了。