double d = 0.1234567890;
System.out.println(new DecimalFormat("#.###'%'").format(d*100));

解决方案 »

  1.   

    java.text.NumberFormat nf = java.text.NumberFormat.getPercentInstance(java.util.Locale.CHINA);
    nf.setMinimumFractionDigits(3);
    System.out.println(nf.format(0.1234567890));
      

  2.   

    //提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指定精度,以后的数字四舍五入
        public static double div(double v1,double v2,int scale){        if(scale<0){            throw new IllegalArgumentException(                "The scale must be a positive integer or zero");        }        BigDecimal b1 = new BigDecimal(Double.toString(v1));        BigDecimal b2 = new BigDecimal(Double.toString(v2));        return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue();    } 
    //提供精确的小数位四舍五入处理
        public static double round(double v,int scale){        if(scale<0){            throw new IllegalArgumentException(                "The scale must be a positive integer or zero");        }        BigDecimal b = new BigDecimal(Double.toString(v));        BigDecimal one = new BigDecimal("1");        return b.divide(one,scale,BigDecimal.ROUND_HALF_UP).doubleValue();    }