请教一些jsp浮数相加的问题,相加完的结果不对
我从数据库取出些数据--用的rs.getFloat("")取的,如下
3.02 + 123.02 =146.01999 (应该为146.02)
不知道为什么?

解决方案 »

  1.   

    写错了,应该是用rs.getFloat取出的是23+120+3.02=146.02才对,但确出来146.01999 
      

  2.   

    System.out.print(23+120+3.02);  146.02我加出来是对的啊 呵呵
      

  3.   

    取出来的时候数值肯定是对的,误差主要产生在进行数值运算的时候。浮点数运算精度问题,如果对计算结果要求不十分地高的话,可以采用String str = String.format("%.2f", 23f + 123.02f); 转成字符串。如果对计算要求高的话(比如财务系统的话),需要采用 BigDecimal 来进行处理。
      

  4.   

    BigDecimal 如何处理,要求很高的,一个数都不能差
      

  5.   

    BigDecimal a = rs.getBigDecimal("a");
    BigDecimal b = rs.getBigDecimal("b");BigDecimal c = a.add(b);
      

  6.   

    BigDecimal price1 = new BigDecimal(rs.getString("price1"));
    BigDecimal price2 = new BigDecimal(rs.getString("price2"));
    BigDecimal price3 = new BigDecimal(rs.getString("price3"));BigDecimal sum = price1.add(price2).add(price3);
      

  7.   

    1。我想在循环外定义一个BigDecimal类型的几个变量,如何定义
    2、我要在循环里面实现变量累加如何定现(BigDecimal类型)
    3、把循环里面实现变量累加的结果值付给循环外定义一个BigDecimal类型变量如何实现
      

  8.   

    1。我想在循环外定义一个BigDecimal类型的几个变量,如何定义
    2、我要在循环里面实现变量累加如何定现(BigDecimal类型)
    3、把循环里面实现变量累加的结果值付给循环外定义一个BigDecimal类型变量如何实现
    ================================================看不明白,这里面有什么难的?
      

  9.   

    啊~~你的问题还没有解决!================
    1。我想在循环外定义一个BigDecimal类型的几个变量,如何定义
    2、我要在循环里面实现变量累加如何定现(BigDecimal类型)
    3、把循环里面实现变量累加的结果值付给循环外定义一个BigDecimal类型变量如何实现
    ================
    如果不是 BigDecimal 类型的话,float 你应该会用吧,BigDecimal 用法与其差不多只不过运算需要采用方法来实现罢了,至于定义变量什么的,与其他对象的变量没有区别的。如果你做的是加法运算的话,定义时只要初始值给它为“0”就可以了:BigDecimal big = new BigDecimal("0");
    for(int i=1; i<=10; i++) {
      big = big.add(new BigDecimal(i));
    }
    System.out.println(big.toString());