object转化成float Object fl=123456.1216311;System.out.println((Float)fl);报错信息:Exception in thread "main" java.lang.ClassCastException: java.lang.Double难道fl变成Double的了?请高手解决一下. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Object fl=123456.1216311F;System.out.println((Float)fl);或者Object fl=123456.1216311f;System.out.println((Float)fl);或者Object fl=123456.1216311;System.out.println((Double)fl); 那为什么object转化不成float呢?是因为那个object被JVM默认就是double?然后从double-->float出错? 系统会将浮点型常量默认为Double类型,所以会出现类型不匹配异常Object fl=123456.1216311;System.out.println(Float.parseFloat(fl.toString())); 这个object是从数据库中取出来的.不能在后面加F.有什么别的方法吗?valueOf,parseFloat会丢失精度的. Object指的是泛类,你用(Float) fl 这样去转换,JAVA肯定会抛出异常,Float是一个类,正确的做法是用Float类下有个静态方法parseFloat()去解析,代码如下:Object fl=123456.1216311;System.out.println(Float.parseFloat(fl.toString())); 并不是把object默认为double,而是将浮点型常量默认定义为Double类型对象而你的Object fl=123456.1216311; 相当于Object fl=new Double(123456.1216311);fl虽然被声明为一个Object对象变量,但它最终引用了Double的一个实例对象 float a=Float.parseFloat(b.toString());//b为object类型 总的原因是这样:我要数据库中汇总是用HQL 查询:hql="xxxxx ,avg(money)xxxxxx"得到的是一个.List<Object[]> list=dao.find(hql.toString);我Debug时发现我得到的Ojbect数组是[String,Double]但是别人写的代码得到的却是[String,Float]代码写的是一样的呀.我COPY过来,还是出错.郁闷.同样的数据,同样的代码.难道是我忽略什么了?数据库也是一样的.有人也遇到过这问题吗?如果解决不了就用doulbe,我只是很好奇. 关于分旬 能给点学习JAVA的好的项目吗 如何把字符串转化为double 或是float 形 求一java 电子表的程序 怎样把汉字转成unicode?并且反过来把unicode转成汉字? JTable的ColumnName问题 新手的无奈!!!!!!!! 各位新年好,新手问题 [加急急]:做一个WebMail,POP3不支持多个文件夹,我该如何访问收件箱,发件箱,垃圾箱?? 在sun sco unix,why? java程序编译不过 JAVA实现学生考试成绩分析程序(求代码) 看哪本书比较好呢?
System.out.println((Float)fl);或者
Object fl=123456.1216311f;
System.out.println((Float)fl);或者
Object fl=123456.1216311;
System.out.println((Double)fl);
然后从double-->float出错?
Object fl=123456.1216311;
System.out.println(Float.parseFloat(fl.toString()));
System.out.println(Float.parseFloat(fl.toString()));
而你的Object fl=123456.1216311; 相当于Object fl=new Double(123456.1216311);
fl虽然被声明为一个Object对象变量,但它最终引用了Double的一个实例对象
我要数据库中汇总是用HQL 查询:
hql="xxxxx ,avg(money)xxxxxx"
得到的是一个.List<Object[]> list=dao.find(hql.toString);
我Debug时发现我得到的Ojbect数组是[String,Double]
但是别人写的代码得到的却是[String,Float]
代码写的是一样的呀.我COPY过来,还是出错.郁闷.
同样的数据,同样的代码.难道是我忽略什么了?数据库也是一样的.有人也遇到过这问题吗?如果解决不了就用doulbe,我只是很好奇.