计算两个int类型数据相除得到的百分比,保存两位小数,如果两位小数是0则取到有数字为止,如0.0000007%,不是转成
0.00%,而是转成0.0000007%
import java.math.BigDecimal;
import java.text.DecimalFormat;
/**
* 处理数据的工具类 * 公用的处理数据的方法写在这里 * Created by shw on 2018/5/4 0004. */
public class DataHandleUtil {
_/\*\*_
_\* 占比计算保留小数的位数方法_ _\* 转成百分数_ _\* 当前数除以总数_ _\*_ **_@param_** _num1_ _,num2 num1/num2_
_\*_ **_@return_** _rate 保留2位小数的_
_\*/_ public static String division(int num1,int num2){
String rate="0.00%";
//定义格式化起始位数
String format="0.00";
if(num2 != 0 && num1 != 0){
DecimalFormat dec = new DecimalFormat(format);
rate = dec.format((double) num1 / num2\*100)+"%";
while(true){
if(rate.equals(format+"%")){
format=format+"0";
DecimalFormat dec1 = new DecimalFormat(format);
rate = dec1.format((double) num1 / num2\*100)+"%";
}else {
break;
}
}
}else if(num1 != 0 && num2 == 0){
rate = "100%";
}
return rate;
}
_/\*\*_
_\* 把上面得到的百分比转为字符串类型的小数 保留两位小数_ _\*_ **_@author_** _shw_
_\*/_ public static BigDecimal perToDecimal(String percent){
String decimal = percent.substring(0,percent.indexOf("%"));
BigDecimal bigDecimal = new BigDecimal(decimal);
bigDecimal.divide(new BigDecimal("100"), 4, BigDecimal._ROUND\_HALF\_UP_);
return bigDecimal;
}
}