package org.security.trans.dataStatistics.util;

import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.DecimalFormat;

/**
 * @author ：wzf
 * @apiNote ：百分比计算
 * @since ：Created in 2022/10/31 9:51
 */
public class CalculationRatioUtil {

	/**
	 * int计算
	 *
	 * @param divisor  除数
	 * @param dividend 被除数
	 * @return
	 */
	public static String getAimRatio(int dividend, int divisor) {
		String aimRatio = null;
		DecimalFormat df = new DecimalFormat("0.00");
		if (divisor == 0 && dividend != 0) {
			aimRatio = "0".concat("%");
		}
		if (divisor == 0) {
			aimRatio = "100".concat("%");
		}
		if (dividend != 0 && divisor != 0) {
			aimRatio = df.format(((float) dividend / divisor) * 100).concat("%");
		}
		return aimRatio;
	}


	/**
	 * BigDecimal计算
	 *
	 * @param divisor  除数
	 * @param dividend 被除数
	 * @return
	 */
	public static BigDecimal getAimBigDecimal(BigDecimal dividend, BigDecimal divisor) {
		BigDecimal aimBigDecimal = BigDecimal.ZERO;
		if (divisor.compareTo(BigDecimal.ZERO) == 0) {
			aimBigDecimal = dividend;
		}
		if ((divisor.compareTo(BigDecimal.ZERO) != 0) && (dividend.compareTo(BigDecimal.ZERO) != 0)) {
			aimBigDecimal = dividend.divide(divisor).setScale(2, RoundingMode.HALF_UP);
		}
		return aimBigDecimal;
	}
}
