日期:2014-05-20  浏览次数:21159 次

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
------解决方案--------------------
引用:

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);
}

------解决方案--------------------
确实。可以先判断是否为空  为空则给个默认值吧。就不会报空指针错误了