有一个FLOAT类型字段(je),我在JAVA程序中用rs.getFloat("je")取值,如(116925597.62)为什么转成了科学计算法的值(1.169256E8),如何转换成在数据库中正常显示的值(116925597.62),请高手解答!

解决方案 »

  1.   

    用格式化,具体的看看API文档的java.text.NumberFormat和java.text.DecimalFormat类
      

  2.   

    用double试试看,实在不行转成String也可以的
      

  3.   

    直接用rs.getString("je")就是了!
      

  4.   

    最好用double型,float的精确程度低。java.text.NumberFormat nft=java.text.NumberFormat.getNumberInstance();
    double f=116925597.62d;
    System.out.println("before formated: "+f);
    System.out.println("after formated: "+nft.format(f));
      

  5.   

    楼上说的我从数据库取出来的值是4.513533194000001E7
    而数据库显示的是45135331.94,如何通过format转换成45135331.94呢
      

  6.   

    private static String double2String(double d)
        {
            DecimalFormat df = new DecimalFormat("#.##") ;
            StringBuffer sb = new StringBuffer() ;
            df.format(d, sb, new FieldPosition(0)) ;
            return sb.toString() ;        
        }
      

  7.   

    我是用以下方法解决的,不知大家还有什么高招!
     NumberFormat nft = NumberFormat.getNumberInstance();
     nft.format(rs.getDouble("je")).replaceAll(",", "");