BigDecimal mData = new BigDecimal(4561*0.005).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println("----"+mData.toString());本来是结果22.805四舍五入得22.81
可是结果:22.80怎么才能得到22.81呢

解决方案 »

  1.   


    BigDecimal mData = new BigDecimal(4561*0.005).setScale(2, BigDecimal.ROUND_HALF_DOWN); 
      

  2.   

    ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2
    ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1
      

  3.   

    错了 我JDK1.6.0_16运行上面的都是1.5,楼主的程序结果也是相同的22.80,不论是UP还是DOWN,等待高手
      

  4.   

    BigDecimal mData = new BigDecimal(4561*0.005).setScale(2, BigDecimal.ROUND_UP); 
    System.out.println("----"+mData.toString()); 试试这个吧,原因还在查看,枚举常量不同。希望能帮到你