会不精确吗!?没有试过,那试试用两个byte[]数组分别取rs的整数与小数部分,然后分别求整数之和与小数之和,之后将两者相加。。
看看这样行不!?方法有点笨,不要笑我。。

解决方案 »

  1.   

    由 JDBC PreparedStatement 和 ResultSet 类所提供的 setFloat() 和 getFloat() 方法,因为浮点数与小数之间的转换可能会丧失精确性。用 PreparedStatement 和 ResultSet 的 setBigDecimal() 及 getBigDecimal() 方法。
    但要注意:
    1  BigDecimal 对象是不可变的,对它进行计算会产生新的 BigDecimal 对象
    2  使用 equals() 方法来检测数值之间是否相等时要小心,equals() 方法认为,两个表示同一个数但换算值不同(例如,100.00 和 100.000)的 BigDecimal 值是不相等的,所以在从数值上比较两个 BigDecimal 值时,应该使用 compareTo()
      

  2.   

    楼上正解,精确的浮点运算用BigDecimal
      

  3.   

    可能会有不精确的问题,可以用double和BigDecimal;
    我在计算钱的程序中使用过double,
    在中间计算过程中可能有不精确的地方,
    但把结果保留2位小数后,是正确的;
    科学计算还是用BigDecimal较好.