java中Integer运算保留2位小数

 Lan   2020-03-04 10:23   177 人阅读  0 条评论

1.整数型运算时,结果会自动去除小数点后面的部分,如果需要适当的保留几位小数,需要转为fload类型,分子或者分母或者都转

如:

计算5除以6,保留2位小数

BigDecimal b = new BigDecimal((float)5/6);四舍五入保留2位
Double result = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();如需保留3位

Double result = b.setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue();

2.第二种方法

DecimalFormat df = new DecimalFormat("0.00"); Double result = df.format((float)5/6);如需保留3位


DecimalFormat df = new DecimalFormat("0.000"); Double result = df.format((float)5/6);

3.第三种

String percent = new BigDecimal((double)num*100/sum).setScale(2,BigDecimal.ROUND_HALF_UP)+"%";

4.第四种:

计算百分比

    /**
     * a / b   计算百分比
     * @param a
     * @param b
     * @return eg:65.32%
     */
    public static String ADivideBPercent(BigDecimal a,BigDecimal b){
        String percent =
            b == null ? "-" :
                    b.compareTo(new BigDecimal(0)) == 0 ? "-":
                        a == null ? "0.00%" :
                                a.multiply(new BigDecimal(100)).divide(b,2,BigDecimal.ROUND_HALF_UP) + "%";
        return percent;
    }


本文地址:https://www.lanol.cn/post/21.html
版权声明:本文为原创文章,版权归 Lan 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?