double  aa=4.602;
            aa=aa*100;
        System.out.println(aa);印出来的数是 460.200000000000005    为什么啊

解决方案 »

  1.   

    简单的说呢,double*double=double,存在不精确的问题
    你要用BigDecimal才行
      

  2.   

    当然用BigDecimal啦!
            BigDecimal c=new BigDecimal(String.valueOf(4.602));
            System.out.println(c.multiply(new BigDecimal("100")).setScale(1));        BigDecimal a=new BigDecimal(4.068);
            String b = String.valueOf(a.doubleValue());
            System.out.println(b.charAt(b.length()-1));
            //直接省略后面的
             a = a.setScale(2, BigDecimal.ROUND_DOWN);
             System.out.println(a);