您的位置:首页 > 编程语言 > Java开发

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

2017-11-02 15:36 253 查看
“月落乌啼霜满天,江枫渔火对愁眠”

很多时候,我们在用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;


这段代码看起来保留小数没问题,但是结果是这样的.



注意看占比中最低的两个,,,显然整数位是零,,但在这里没显示了.

那是因为
DecimalFormat df = new DecimalFormat("#.00");//保留两位小数
这句代码代码中的#号,表示,如果不存在则显示为空.

所以应该这么改
DecimalFormat df = new DecimalFormat("0.00");//保留两位小数
把#号改成阿拉伯数字0,这样就好啦.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐