Java中三种保留小数点的方法

方法一:使用BigDecimal格式化小数点

  • ROUND_DOWN直接删除多余的位数.
  • ROUND_HALF_UP直接四舍五入.
  • ROUND_UP是进位处理保留的小数后面无论是几都会进一位.
  • ROUND_HALF_DOWN是如果要保留的那个小数位是5则向下舍.
  • ROUND_CEILING接近正无穷大的舍入.
  • ROUND_FLOOR接近负无穷大的舍入,数字>0和ROUND_UP作用一样,数字<0和ROUND_DOWN作用一样.
  • ROUND_HALF_EVEN下最接近的数字舍入,如果与两个相邻数字的距离相等,泽祥相邻的偶数舍入.
public static void main(String[] args) {
        //5.254变成5.2
        BigDecimal bigDecimal1 = new BigDecimal(5.254).setScale(1, BigDecimal.ROUND_DOWN);
        System.out.println("bigDecimal1="+bigDecimal1);
        //5.254变成5.3
        BigDecimal bigDecimal2 = new BigDecimal(5.254).setScale(1, BigDecimal.ROUND_HALF_UP);
        System.out.println("bigDecimal2="+bigDecimal2);
        //5.224变成5.3
        BigDecimal bigDecimal3 = new BigDecimal(5.224).setScale(1, BigDecimal.ROUND_UP);
        System.out.println("bigDecimal3="+bigDecimal3);
        //5.554变成5.6,如果是5.254则变成5.3
        BigDecimal bigDecimal4 = new BigDecimal(5.554).setScale(1, BigDecimal.ROUND_HALF_DOWN);
        System.out.println("bigDecimal4="+bigDecimal4);
        //ROUND_CEILING接近正无穷大的舍入
        BigDecimal bigDecimal5 = new BigDecimal(5.254).setScale(1, BigDecimal.ROUND_CEILING);
        System.out.println("bigDecimal5="+bigDecimal5);
        //5.254变成5.2,-5.254变成-5.3
        BigDecimal bigDecimal6 = new BigDecimal(-5.254).setScale(1, BigDecimal.ROUND_FLOOR);
        System.out.println("bigDecimal6="+bigDecimal6);
        //5.254变成5.3,5.244变成5.2
        BigDecimal bigDecimal7 = new BigDecimal(5.244).setScale(1, BigDecimal.ROUND_HALF_EVEN);
        System.out.println("bigDecimal7="+bigDecimal7);

    }

结果

方法二: 使用Math工具中的取整方法,可用于浮点数取整,只看浮点数的小数位是何值来判断.

public static void main(String[] args) {
        double i=3.76;
        //四舍五入直接取整数
        long round = Math.round(i);
        //向上取整,5.46变成6.0,3.46变成4.0
        double ceil = Math.ceil(i);
        //向下取整保留一位小数为0,3.76变成3.0
        double floor = Math.floor(i);
        System.out.println(round);
        System.out.println(ceil);
        System.out.println(floor);
    }

结果展示:

方法三: 使用DecimalFormat数据格式化方式.

double num = 55.382;
        //定义保留格式,相当于保留几位小数
        DecimalFormat df = new DecimalFormat("0.0");
        //指定四舍五入规则HALF_UP
        df.setRoundingMode(RoundingMode.HALF_UP);
        System.out.println(df.format(num));

结果展示:

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值