两个BigDecimal型数据b1,sValue,相除得rate,怎么rate打印出来都是0,1啊?跟真实结果差远了!我要很精确得数据.
BigDecimal rate = null;
rate = b1.divide(sValue, BigDecimal.ROUND_HALF_UP);
System.out.println("rate=" + rate);

解决方案 »

  1.   

    你把两个里面的值都转换成double做完除法再放回去不就行了哈哈
      

  2.   

    知道了,还要加个参数.
    下面得结果算出来是rate=-0.2581
    但是我用windows计算器算出来是0.2582147838.......
    这是为什么???
    public static void main(String[] args) {
    BigDecimal b1 = new BigDecimal("-555.4200");
    BigDecimal sValue = new BigDecimal("2151.5800");
    BigDecimal rate = b1.divide(sValue, 4, BigDecimal.ROUND_HALF_UP);
    System.out.println("rate=" + rate);
    }