因为有的浮点数,计算机无法准确的表示,只好用很接近的浮点数去表示。Oracle数据库中应该用的char[]来存放的数字吧
你可以考虑用用看java.math.BigDecimal

解决方案 »

  1.   

    用resultset里的getString()来取数啊!
      

  2.   

    是不是oracle数据库的默认精度是这样的呢?
    float可以设置精度,sql server就是这样的
      

  3.   

    在数据库中类型是float,没有设置精度,我用getBigDecimal和getFloat都不行啊
      

  4.   

    使用BigInteger类可以实现任意精度的整数运算。使用BigDecimal可以实现任意精度的浮点预算!但是使用这个类不能使用熟悉的数学操作符,比如+和*,来操作大数字。要实现这些功能必须使用大数字当中的add,multiply等方法。例如:BigInteger c=a.add(b);//c=a+b
          BigInteger d=c.multiply(b.add(BigInteger.valueof(2)));//d=c*(b+2)也可以看看java中的帮助文档,里面有更详细的介绍!
      

  5.   

    首先写进去会不会有问题?
    然后从数据库怎么拿出来的?若上面都不能确定,
    取出来后,使用BigDecimal四舍五入吧