package com.project.common.utils; import java.math.BigDecimal; public class NumberUtils { /** * 除法运算: o1/o2 保留四小数 * @param o1 * @param o2 * @return */ public static BigDecimal divToBigDecSca4(Object o1, Object o2) { if(o1 == null || o2 == null) { return null; } BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.divide(b2, 4, BigDecimal.ROUND_HALF_UP); } /** * 除法运算: o1/o2 保留两小数 * @param o1 * @param o2 * @return */ public static BigDecimal divToBigDecSca2(Object o1, Object o2) { if(o1 == null || o2 == null) { return null; } BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP); } /** * 乘法运算: o1*o2 保留四小数 * @param o1 * @param o2 * @return */ public static BigDecimal mulToBigDecSca4(Object o1, Object o2) { if(o1 == null || o2 == null) { return null; } BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.multiply(b2).setScale(4, BigDecimal.ROUND_HALF_UP); } /** * 乘法运算: o1*o2 保留两小数 * @param o1 * @param o2 * @return */ public static BigDecimal mulToBigDecSca2(Object o1, Object o2) { if(o1 == null || o2 == null) { return null; } BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.multiply(b2).setScale(2, BigDecimal.ROUND_HALF_UP); } /** * 减法: o1 - o2 * @param o1 * @param o2 * @return */ public static BigDecimal subtract(Object o1, Object o2) { if(o1 == null || o2 == null) { return null; } BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.subtract(b2); } /** * 加法: o1 + o2 * @param o1 * @param o2 * @return */ public static BigDecimal add(Object o1, Object o2) { if(o1 == null || o2 == null) { return null; } BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.add(b2); } /** * 除法运算: o1/o2 只保留整数 * @param o1 * @param o2 * @return */ public static BigDecimal divToBigDecSca(Object o1, Object o2) { BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.divide(b2, 0, BigDecimal.ROUND_DOWN); } /** * 乘法法运算: o1/o2 只保留整数 * @param o1 * @param o2 * @return */ public static BigDecimal mulToBigDecSca(Object o1, Object o2) { BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.multiply(b2).setScale(0, BigDecimal.ROUND_DOWN); } /** * 除法运算: o1/o2 保留8小数 * @param o1 * @param o2 * @return */ public static BigDecimal divToBigDecSca8(Object o1, Object o2) { BigDecimal b1 = new BigDecimal(o1.toString()); BigDecimal b2 = new BigDecimal(o2.toString()); return b1.divide(b2, 8, BigDecimal.ROUND_DOWN); } }