版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sky_20131213/article/details/80923786
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class RateCalculate {
public static void main(String[] args) {
double divisorData = 73;
double dividendData = 85;
System.out.println(rateUtil(dividendData, divisorData,2));
double rate = 76.356;
System.out.println(rateUtil(rate,2));
}
/**
* 求百分率
* @param divisorData 除数
* @param dividendData 被除数
* @param num 小数位数
* @return String
*/
public static String rateUtil(Double divisorData,Double dividendData,Integer num){
return getDecimalFormat(num).format(calculateRate(divisorData,dividendData))+ "%";
}
public static String rateUtil(Double rateData,Integer num){
return getDecimalFormat(num).format(rateData)+ "%";
}
private static DecimalFormat getDecimalFormat(Integer num){
DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getInstance();
// 可以设置精确几位小数
decimalFormat.setMaximumFractionDigits(num);
// 模式 例如四舍五入
decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
return decimalFormat;
}
public static double calculateRate(Double divisorData,Double dividendData){
if (divisorData!=0&&divisorData!=null&÷ndData!=null){
return dividendData/divisorData*100;
}
return 0;
}
}
结果