oracle number类型 竟然会最高位取整

系统描述:
系统采用struts1.0结合DAOUtils的方式, Web层页面使用struts标签,提交请求到Action, Action中使用TranslateBean.formToBean(form, bean)可将JSP页面中的数据赋值给Bean,接下来调用XXXBO的对象方法,BO中使用DAOUtils处理数据表操作,DAOUtils对JDBC作了封装.



应用服务为tomcat6.0 数据库:oracle



双机热备作用于(服务器1和服务器2),应用服务tomcat6.0部署在服务器1上,服务器1倒掉后双机热备程序会把tomcat6.0切到服务器2上,服务器操作系统用的是Red Hat Enterprise Linux Server release 5.4  


问题:
  在jsp页面输入数字也就是number类型的数据时,会出现部分数字最高位取整(不是所有数字都会发生最高位取整),例如输入14.4存到数据库里就会变为20.0 (输入1.2就会变为2.0等)既不是向上取整,也不是四舍五入,出现这种问题后重启tomcat就好了。这种问题也不是一直有,一般20几天或一个月甚至50天出来一次。时好时坏估计也不是数据库表中定义的nunber类型有问题( 输入14.4的字段是这样定义的NUMBER(8,2) ),最近两次出问题都是双机热备切换后出现的,但之前双机热备切换的时候也不会出现。
  而且还跟踪了form和bean中的值,插入数据库前后都正确着。

  而且这种问题只在服务器Linux 上出现,开发环境windows从来没有出现过,才导致不好解决


  不知道大家有遇到这种情况吗,麻烦给支支招

作者: longxing208   发布时间: 2011-09-21

。。。难道你用到了CEIL函数?

作者: bear_cat   发布时间: 2011-09-22