java实现四舍五入并且保留两位小数

一.

public static void main(String[] args) {
        String d1 = "2.2";
        String d2 = "2.260";
        String d3 = "2.207";
        String d4 = "2.996";
        
        DecimalFormat df = new DecimalFormat("0.00");
        
        System.out.println(df.format(Double.parseDouble(d1)));
        System.out.println(df.format(Double.parseDouble(d2)));
        System.out.println(df.format(Double.parseDouble(d3)));
        System.out.println(df.format(Double.parseDouble(d4)));
        
    }

结果如下:

2.20
2.26
2.21
3.00

二.

public static void main(String[] args) {
        double d1 = 2.254;
        double d2 = 2.255;
        double d3 = 2.256;
        double d4 = 2.257;
        BigDecimal bd1= new BigDecimal(d1);
        BigDecimal bd2= new BigDecimal(d2);
        BigDecimal bd3= new BigDecimal(d3);
        BigDecimal bd4= new BigDecimal(d4);
        
        System.out.println(bd1.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
        System.out.println(bd2.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
        System.out.println(bd3.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
        System.out.println(bd4.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
        
        
    }

结果如下:

2.25
2.25
2.26
2.26

原因:因为数值本身就是double类型,而double类型的2.255可能存值为2.2549999999999999999999这种,所以这种四舍五入方法可能会出现问题。

三.

public static void main(String[] args) {
        double d1 = 0.20;
        double d2 = 0.250;
        double d3 = 0.299;
        double d4 = 0.999;
        
        System.out.println(String.format("%.2f", d1));
        System.out.println(String.format("%.2f", d2));
        System.out.println(String.format("%.2f", d3));
        System.out.println(String.format("%.2f", d4));
        
        
    }

结果如下:

0.20
0.25
0.30
1.00

四.


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值