package utils;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.Random;
/**
* 数字工具类
* User: zfc
* Date: 2020-10-01 09:57
*/
public class NumberUtil {
public static BigDecimal randomBigDecimal() {
Random random = new Random(System.currentTimeMillis());
return BigDecimal.valueOf(random.nextBoolean() ? random.nextLong() : random.nextDouble());
}
public static int randomInt(int top) {
return new Random(System.currentTimeMillis()).nextInt(top);
}
/**
* BigDecimal 转换避免非空,保留两位小数
* @param bigDecimal
* @return
*
* @author zfc
* @date 2019年9月26日 下午5:24:38
*/
public static BigDecimal getBigDecimal(Object double1){
// DecimalFormat df = new DecimalFormat("######0.00");
if(double1 == null || double1.equals("")){
return new BigDecimal("0.00");
}
BigDecimal bigDecimal = new BigDecimal(double1.toString());
return bigDecimal.setScale(2, BigDecimal.ROUND_HALF_UP);
}
/**
* 两数相加 ,保留两位小数 param1 + param2
* @param param1
* @param param2
* @return
*
* @author zfc
* @date 2019年10月10日 上午8:46:20
*/
public static BigDecimal addBigDecimal(Object param1 , Object param2){
BigDecimal bigDecimal1 = getBigDecimal(param1);
BigDecimal bigDecimal2 = getBigDecimal(param2);
return bigDecimal1.add(bigDecimal2);
}
/**
* 两数相减 ,保留两位小数 param1 - param2
* @param param1
* @param param2
* @return
*
* @author zfc
* @date 2019年10月10日 上午8:46:20
*/
public static BigDecimal subBigDecimal(Object param1 , Object param2){
BigDecimal bigDecimal1 = getBigDecimal(param1);
BigDecimal bigDecimal2 = getBigDecimal(param2);
return bigDecimal1.subtract(bigDecimal2);
}
/**
* 两数相乘 ,保留两位小数 param1 * param2
* @param param1
* @param param2
* @return
*
* @author zfc
* @date 2019年10月10日 上午8:46:20
*/
public static BigDecimal mulBigDecimal(Object param1 , Object param2){
BigDecimal bigDecimal1 = getBigDecimal(param1);
BigDecimal bigDecimal2 = getBigDecimal(param2);
return bigDecimal1.multiply(bigDecimal2);
}
/**
* 两数相除 ,保留两位小数 param1 / param2
* @param param1
* @param param2
* @return
*
* @author zfc
* @date 2019年10月10日 上午8:46:20
*/
public static BigDecimal divideBigDecimal(Object param1 , Object param2){
BigDecimal bigDecimal1 = getBigDecimal(param1);
BigDecimal bigDecimal2 = getBigDecimal(param2);
return bigDecimal1.divide(bigDecimal2);
}
/**
* 两数比大小 ,
* @param param1
* @param param2
* @return
*
* @author zfc
* @date 2019年10月10日 上午8:46:20
*/
public static int comToBigDecimal(Object param1 , Object param2){
BigDecimal bigDecimal1 = getBigDecimal(param1);
BigDecimal bigDecimal2 = getBigDecimal(param2);
return bigDecimal1.compareTo(bigDecimal2);
}
/**
* 将金额转为,分隔的格式
*
* @param money
* @return String chenzhijin 2017-06-07
*/
public static String formatBigMoney(Object double1) {
BigDecimal money = getBigDecimal(double1);
DecimalFormat myformat = new DecimalFormat();
myformat.applyPattern("###,##0.00");
return myformat.format(money);
}
}