在做断点下载的时候碰到一个小问题,在显示下载进度的时候我想让它显示总共有多少M,和已经下载了多少M。但是我又想让它保留两位小数。于是我用到了DecimalFormal这个类。
顾名思义,这是一个控制小数格式的类用法如下。
float num = progressBar.getProgress();//已经下载了的字节数大小
float total= progressBar.getMax();// 计算已经下载的百分比,此处需要转换为浮点数计算
DecimalFormat dFormat=new DecimalFormat("0.00");//格式化小数
//dFormat.format(num);//返回的是String类型
resultView.setText(dFormat.format(num/1024/1024) + "/"+dFormat.format(total/1024/1024)+"M");
得到总字节数和已下载的字节数,为了这两个数除以1024的时候保留小数,于是现将这两个数强转为浮点数(float)。
使用DecimalFormat,实例化一个这个类的对象,将格式写成两位小数,这样当使用dFormat.format(num);时便会保留两位小数,并以String类型返回。
自此,答成目的。
要点:
1.浮点数与浮点数相除,还是浮点数。
2.浮点数与整数相除,还是浮点数。
3.整数与整数相除,会是整数。(应该会四舍五入吧,没有试过)
4.DecimalFormat控制浮点数格式,调用format()方法返回String类型的值。