package com.dcit.common.utils;

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

/**
* <p>Title: MathUtil</p>
* <p>Description: </p>
* <p>Company: SJZ DC-IT co. LTD</p> 
* @author ZZZ
* @date 2018年8月28日 上午11:30:30
 */
public class MathUtil {
	
	private static final Double MONEY_RANGE = 0.01;
	
	/**
	 * 比较2个金额是否相等
	 * @param d1
	 * @param d2
	 * @return
	 */
	public static Boolean equals(Double d1, Double d2){
		Double rst = Math.abs(d1 - d2);
		if(rst < MONEY_RANGE){
			return true;
		}else{
			return false;
		}
	}
	
	/**
	 * 求百分比
	 * @param num
	 * @param total
	 * @param scale
	 * @return
	 */
	public static String accuracy(double num, double total, int scale){
		DecimalFormat df = (DecimalFormat)NumberFormat.getInstance();
		//可以设置精确几位小数
		df.setMaximumFractionDigits(1);
		//模式 例如四舍五入
		df.setRoundingMode(RoundingMode.HALF_UP);
		double accuracy_num = num / total * 100;
		return df.format(accuracy_num);
	}
	
	/**
	 * 求百分比
	 * @param num
	 * @param total
	 * @param scale
	 * @return
	 */
	public static String accuracyOne(double num, double total, int scale){
		DecimalFormat df = (DecimalFormat)NumberFormat.getInstance();
		//可以设置精确几位小数
		df.setMaximumFractionDigits(0);
		//模式 例如四舍五入
		df.setRoundingMode(RoundingMode.HALF_UP);
		double accuracy_num = num / total * 100;
		return df.format(accuracy_num);
	}
	
}
