java计算同比增长率的工具类
import java.text.DecimalFormat;
import java.text.NumberFormat;
/**
* @ClassName PercentUtil
* @Descript TODO
* @Author BestOne
* Date 2021/5/27 15:13
*/
public class PercentUtil {
public static String myPercent(int y, int z) {
String baifenbi = "";// 接受百分比的值
double baiy = y * 1.0;
double baiz = z * 1.0;
double fen = baiy / baiz;
// NumberFormat nf = NumberFormat.getPercentInstance();注释掉的也是一种方法
// nf.setMinimumFractionDigits( 2 ); 保留到小数点后几位
DecimalFormat df1 = new DecimalFormat("##%");
// ##.00%
// 百分比格式,后面不足2位的用0补齐
// baifenbi=nf.format(fen);
baifenbi = df1.format(fen);
// System.out.println(baifenbi);
return baifenbi;
}
public static String myPercentTest(int y, int z) {
String baifenbi = "";// 接受百分比的值
double baiy = y * 1.0;
double baiz = z * 1.0;
double fen = baiy / baiz;
// NumberFormat nf = NumberFormat.getPercentInstance();注释掉的也是一种方法
// nf.setMinimumFractionDigits( 2 ); 保留到小数点后几位
DecimalFormat df1 = new DecimalFormat("##%");
// ##.00%
// 百分比格式,后面不足2位的用0补齐
// baifenbi=nf.format(fen);
baifenbi = df1.format(fen);
System.out.println(baifenbi);
return baifenbi;
}
/**
* **计算月增长率**
* sameMonth 本月金额
* lastMonth 上月金额
*/
public static String getAnalysisData(int sameMonth, int lastMonth) {
// 创建一个数值格式化对象
NumberFormat numberFormat = NumberFormat.getInstance();
// 设置精确到小数点后2位
numberFormat.setMaximumFractionDigits(0);
Integer growthNum=0;
String growthPercent="0";
// String result = numberFormat.format((float) num1 / (float) num2 * 100);
if (lastMonth > 0 && sameMonth > 0) {
if (lastMonth < sameMonth) {
//如果下个数大于上个数,则增长率 为 正
/* float result = (sameMonth - lastMonth) / lastMonth * 100;
return String.format("%10.2f%%", result).trim();*/
growthNum=sameMonth - lastMonth;
growthPercent= numberFormat.format((float)growthNum / (float) lastMonth * 100)+ "%";
return growthPercent;
} else if (lastMonth > sameMonth) {
//如果下个数小于上个数,则增长率 为 负
/* float result = (lastMonth - sameMonth) / sameMonth * 100;
return String.format("%10.2f%%", result).trim();*/
growthNum=lastMonth - sameMonth;
growthPercent= numberFormat.format((float)growthNum / (float) sameMonth * 100)+ "%";
return growthPercent;
} else {
//如果相等,增长率为 0
return "0%";
}
} else if (lastMonth > 0 && sameMonth == 0) {
//如果上个数大于0,下个数为0,增长率为 0
return "0%";
} else if (lastMonth == 0 && sameMonth > 0) {
//如果下个数大于0,上个数为0,增长率为 0
growthNum= sameMonth- lastMonth;
growthPercent= numberFormat.format((float)growthNum / (float) sameMonth * 100)+ "%";
return growthPercent;
} else
{
//如果相等,增长率为 0
return "0%";
}
}
}
调用方法如下:
String resultTest = PercentUtil.getAnalysisData(19,10);
System.out.println("增长率resultTest=:" + resultTest );