float型,本来就是不精确数据类型。
你改成decimal,numeric类型就不会了。

解决方案 »

  1.   

    decimal 和 numeric
    带定点精度和小数位数的 numeric 数据类型。decimal[(p[, s])] 和 numeric[(p[, s])]定点精度和小数位数。使用最大精度时,有效值从 - 10^38 +1 到 10^38 - 1。decimal 的 SQL-92 同义词是 dec 和 dec(p, s)。p(精度)指定小数点左边和右边可以存储的十进制数字的最大个数。精度必须是从 1 到最大精度之间的值。最大精度为 38。s(小数位数)指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 p 之间的值。默认小数位数是 0,因而 0 <= s <= p。最大存储大小基于精度而变化。精度 存储字节数 
    1 - 9 5 
    10-19 9 
    20-28 13 
    29-38 17 
      

  2.   

    我在Enterprise Manager 中把该字段改为Decimal后还会出现该问题,即1140300.79 可取出来打印却变成 1140300.75,取数语句为 rs.getFloat("f1"),请指出问题点,谢谢!