java实现DecimalFormat_java中DecimalFormat的格式化问题

/***功能:将两数相除得到商*@param:chu-除数*@param:bei-被除数*@param:wei-小数点后保留位数[0-4]*@param:flag-是否转成百分数false-否true-是*@return:百分数*/publicStringgetP...

/**

* 功能:将两数相除得到商

* @param:chu-除数

* @param: bei-被除数

* @param: wei-小数点后保留位数[0-4]

* @param: flag-是否转成百分数 false-否 true-是

* @return:百分数

*/

public String getPercentage(int bei, int chu, int wei, boolean flag){

String regx = "", per = "";

if(wei < 0)wei = 0;

switch(wei){

case 0:{ regx="#"; break; }

case 1:{ regx="#.0"; break; }

case 2:{ regx="#.00"; break; }

case 3:{ regx="#.000"; break; }

case 4:{ regx="#.0000"; break; }

default:{ regx="#.##"; break; }

}

if(flag)regx += "%";

DecimalFormat df = new DecimalFormat(regx);

df.setRoundingMode(RoundingMode.HALF_UP); //四舍五入

per = df.format((double)bei / (double)chu) + "";

return per;

}

public static void main(String []args){

StrDeal sd = new StrDeal();

String rex = "";

for(int wei=0; wei<6; wei++){

rex = sd.getPercentage(4, 5, wei, false);

System.out.println("【wei="+wei+"】: "+rex);

}

}

输出:

【wei=0】: 1

【wei=1】: .8

【wei=2】: .80

【wei=3】: .800

【wei=4】: .8000

【wei=5】: 0.8

我想问的是,为何[#.##]时,小数点前带0,而[#.00]却不带0,看API说#作用是:为0不显示,为1-9显示,前导0和追尾0不显示。请高手解惑。

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值