Java保留两位小数,整数是零不显示

“月落乌啼霜满天,江枫渔火对愁眠”

很多时候,我们在用java写程序时,要展示一些数据,比如同比,占比,环比之类的,这个时候就难免会遇到小数,一般都是保留两位小数.但是会出现这种情况,保留两位小数,如果整数位是零的话,就不会显示的问题..代码是这样的.

Map<String, Object> resultMap = new HashMap<String, Object>();
        List<B2bEntity> list = b2bMapper.getOrderOverview(b2bEntity);
        List<String> areadescList = new ArrayList<>(); // 区域名称
        List<Integer> orderList = new ArrayList<>();    //订单量
        List<String> rateList = new ArrayList<>(); // 占比
        DecimalFormat df = new DecimalFormat("#.00");//保留两位小数
        Integer sum = 0;    //总数
        if(list != null && list.size() > 0) {
            for (B2bEntity b2b : list) {
                if(StringUtils.isNotEmpty(b2b.getAreadesc())) {
                    areadescList.add(b2b.getAreadesc());
                    orderList.add(b2b.getOrder_num());
                    sum += b2b.getOrder_num();
                }
            }

            //算占比
            for (Integer num : orderList) {
                rateList.add(df.format(((double)(num) / (double)sum * 100)));
            }
            resultMap.put("areadescList",areadescList);
            resultMap.put("orderList",orderList);
            resultMap.put("rateList",rateList);
            return resultMap;

这段代码看起来保留小数没问题,但是结果是这样的.
不显示0
注意看占比中最低的两个,,,显然整数位是零,,但在这里没显示了.
那是因为DecimalFormat df = new DecimalFormat("#.00");//保留两位小数这句代码代码中的#号,表示,如果不存在则显示为空.
所以应该这么改DecimalFormat df = new DecimalFormat("0.00");//保留两位小数把#号改成阿拉伯数字0,这样就好啦.
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值