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);
|
}
|
|
}
|