小第在做项目时遇到如下困难:
在pl/sql developer中对orcale 9i进行如下操作:
select sum(e.dealvalue) totaloutput from expend e,trainclass t 
where (e.classid=t.id and e.depid=1) and (extract(month from e.time)=7)
and (extract(year from e.time)=2007)
and t.plankind=1
得出结果为:63509但同样的语句用在JAVA中调用后输出结果确变成了:
63509.000000000004经过检查,数据库中并未存储过这么长的小数,最多只有两个到小数点后一位的数字.不知是什么原因,请大家帮忙,谢谢.

解决方案 »

  1.   

    补充一下,我在JAVA中对数据库的查询使用的是spring的jdbctemplate.queryforlist()函数,所以导致了上面的问题,早上又用最原始的statement.query进行查询就不会出现上面的问题,不知有哪位大侠可以说说怎么用spring解决这个问题,就是让jdbctemplate.queryforlist()返回的值不增加精度,那一长串的0实再不堪入目啊.
      

  2.   

    浮点数是有误差的, 不是精确的数值,所以你要确保显示时精确到第几位。例如用ROUND来四舍五入。