Float.parseFloat问题
把数据库中的字符串类型的值转化为浮点数用Float.parseFloat(string)
但是当数据库中的值为null时在使用Float.parseFloat(null) 则报错
java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)
at java.lang.Float.parseFloat(Unknown Source)
该怎么办啊?
------解决方案--------------------先判断,是否为空
比如,使用spring
float x = 0;
if(StringUtils.hasText(xxx)) {
x = Float.parseFloat(xxx);
}
就是这样
------解决方案--------------------Float.parseFloat(string==null?DEFAULT:string)
------解决方案--------------------(string==null ? Float.NaN : Float.parseFloat(string))
------解决方案--------------------判断是否为空 为空就给个默认值0 或者数据库设置该列默认值为0
------解决方案--------------------在页面上显示的时候最好不要出现Null,所以,每个数据从数据库里得到后,最好都判断下,尤其是数字,都给个默认值,这样会比较好
------解决方案--------------------NumberUtils.toFloat
------解决方案--------------------
public static float toFloat(String str ,float defaultValue){
if(str==null){
return defaultValue;
}
try{
return Float.parseFloat(str);
}catch(Exception e){
}
return defaultValue;
}
public static float toFloat(String str ){
return toFloat(str,0.0F);
}
------解决方案--------------------确实。可以先判断是否为空 为空则给个默认值吧。就不会报
空指针错误了