SQL> select to_char(500000000-0.01,'000000000.00') from dual;TO_CHAR(50000
-------------
 499999999.99其实你得到并不是整数,只是显示的问题

解决方案 »

  1.   

    但是我用java取到的值也是500000000
      

  2.   

    但是我用java取到的值也是500000000和你用的数据类型也是有关系的
      

  3.   

    SQL> ed
    已写入文件 afiedt.buf  1  declare a number(10,2);
      2  begin
      3  a:=50000000;
      4  a:=a-0.01;
      5  dbms_output.put_line(a);
      6* end;
    SQL> /
    49999999.99PL/SQL 过程已成功完成。这样可能更能说明问题
      

  4.   

    oracle的结果肯定是没问题,但是它把显示值四舍五入,使得jdbc也认为是整数,现在就是两个疑问:
    1.如何才能在sql_plus中显示正确,即使是修改环境参数也行?
    2.如何才能让jdbc的取数正确?
      

  5.   

    1: 
    SQL> set numformat '000000000.00'
    SQL> select 500000000-0.01 from dual;500000000-0.01
    --------------
      499999999.992:
    不懂JDBC,但你应该用类似rs.getFloat这样的取浮点数的函数来做
      

  6.   

    对的 因为用rs.getString()也必定会进行转换 应当用取浮点数的函数来做
      

  7.   

    column a format 9999999999999999.99
      

  8.   

    select 500000000-0.01 a from dual;
      

  9.   

    java暂时用getDouble()解决了
    如果以后能用weblogic设置jdbc参数,或是其他办法,还望告之
    邮箱号:[email protected]谢谢各位了!结贴!