package cn.huge.base.common.utils; import java.math.BigDecimal; /** * @title: 数字工具类 * @description: 数字工具类 * @company: hugeinfo * @author: liyj * @time: 2021-11-05 16:51:48 * @version: 1.0.0 */ public class NumberUtils { /** * 两个Double数相除,并保留scale位小数(四舍五入) * @param v1 Double数字1 * @param v2 Double数字1 * @param scale 位数 * @return Double */ public static Double div(Double v1, Double v2, int scale){ if(scale<0){ throw new IllegalArgumentException("保留位数必须大于等于0"); } BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * Double除以Integer,并保留scale位小数(四舍五入) * @param v1 Double数字1 * @param v2 Integer数字2 * @param scale 位数 * @return Double */ public static Double div(Double v1,Integer v2,int scale){ if(scale<0){ throw new IllegalArgumentException("保留位数必须大于等于0"); } BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 两个Integer数相除,并保留scale位小数(四舍五入) * @param v1 Integer数字1 * @param v2 Integer数字1 * @param scale 位数 * @return Double */ public static Double div(Integer v1, Integer v2, int scale){ if(scale<0){ throw new IllegalArgumentException("保留位数必须大于等于0"); } BigDecimal b1 = new BigDecimal(v1.toString()); BigDecimal b2 = new BigDecimal(v2.toString()); return b1.divide(b2,scale,BigDecimal.ROUND_HALF_UP).doubleValue(); } /** * 保留scale位小数(四舍五入) * @param v1 Double数字1 * @param scale 位数 * @return Double */ public static Double scale(Double v1, int scale){ if(scale<0){ throw new IllegalArgumentException("保留位数必须大于等于0"); } BigDecimal b1 = new BigDecimal(v1.toString()); return b1.setScale(scale,BigDecimal.ROUND_HALF_UP).doubleValue(); } } /** * -------------------_ooOoo_------------------- * ------------------o8888888o------------------ * ------------------88" . "88------------------ * ------------------(| -_- |)------------------ * ------------------O\ = /O------------------ * ---------------____/`---'\____--------------- * -------------.' \\| |// `.------------- * ------------/ \\||| : |||// \------------ * -----------/ _||||| -:- |||||- \----------- * -----------| | \\\ - /// | |----------- * -----------| \_| ''\---/'' | |----------- * -----------\ .-\__ `-` ___/-. /----------- * ---------___`. .' /--.--\ `. . __---------- * ------."" '< `.___\_<|>_/___.' >'"".------- * -----| | : `- \`.;`\ _ /`;.`/ - ` : | |----- * -----\ \ `-. \_ __\ /__ _/ .-` / /----- * ======`-.____`-.___\_____/___.-`____.-'====== * -------------------`=---=' * ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * ---------佛祖保佑---hugeinfo---永无BUG---------- */