123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package com.jzo2o.common.utils;
- import cn.hutool.core.util.NumberUtil;
- import java.math.BigDecimal;
- import java.util.Comparator;
- import java.util.List;
- import java.util.stream.Collectors;
- public class NumberUtils extends NumberUtil {
- /**
- * 如果number为空,将number转换为0,否则原数字返回
- *
- * @param number 原数值
- * @return 整型数字,0或原数字
- */
- public static Integer null2Zero(Integer number){
- return number == null ? 0 : number;
- }
- /**
- * 如果number为空,将number转换为0,否则原数字返回
- *
- * @param number 原数值
- * @return 整型数字,0或原数字
- */
- public static Double null2Zero(Double number){
- return number == null ? 0 : number;
- }
- /**
- * 如果是空值,返回默认数据;如果有值直接返回
- * @param number
- * @param defaultNumber
- * @return
- */
- public static double null2Default(Double number, double defaultNumber) {
- return number == null ? defaultNumber : number;
- }
- /**
- * 如果number为空,将number转换为0L,否则原数字返回
- *
- * @param number 原数值
- * @return 长整型数字,0L或原数字
- */
- public static Long null2Zero(Long number){
- return number == null ? 0L : number;
- }
- public static Double setScale(Double number) {
- return new BigDecimal(number)
- .setScale(2, BigDecimal.ROUND_HALF_UP)
- .doubleValue();
- }
- /**
- * 比较两个数字是否相同,
- * @param number1 数值1
- * @param number2 数值2
- * @return 是否一致
- */
- public static boolean equals(Integer number1, Integer number2) {
- if(number1 == null || number2 == null){
- return false;
- }
- return number1.equals(number2);
- }
- /**
- * 数字除法保留指定小数位
- * @param num1 被除数
- * @param num2 除数
- * @param scale 小数点位数
- * @return 结果
- */
- public static Double divToDouble(Integer num1, Integer num2, int scale){
- if(num2 == null || num2 ==0 || num1 == null || num1 == 0) {
- return 0d;
- }
- return div(num1, num2, scale).doubleValue();
- }
- public static Double max(List<Double> data){
- if(CollUtils.isEmpty(data)){
- return null;
- }
- return data.stream()
- .max(Comparator.comparingDouble(num -> num))
- .orElse(0d);
- }
- public static Double min(List<Double> data){
- if(CollUtils.isEmpty(data)){
- return null;
- }
- return data.stream()
- .min(Comparator.comparingDouble(num -> num))
- .orElse(0d);
- }
- public static Double average(List<Double> data){
- if(CollUtils.isEmpty(data)){
- return 0d;
- }
- return data.stream()
- .collect(Collectors.averagingDouble(Double::doubleValue));
- }
- public static Integer toInt(Object obj) {
- return obj == null ? null
- : obj instanceof Integer
- ? (int) obj : null;
- }
- /**
- * 取绝对值,如果为null,返回0
- * @param number 数值
- * @return 绝对值
- */
- public static int abs(Integer number) {
- return number == null
- ? 0
- : Math.abs(number);
- }
- /**
- * 数字格式化字符串,不足位数补0
- *
- * @param originNumber 原始数字
- * @param digit 数字位数
- * @return 字符串
- */
- public static String repair0(Integer originNumber, Integer digit){
- StringBuilder number = new StringBuilder(originNumber + "");
- while (number.length() < digit) {
- number.insert(0, "0");
- }
- return number.toString();
- }
- public static Integer null2Default(Integer originNumber, int defaultNumber) {
- return originNumber == null ? defaultNumber : originNumber;
- }
- public static Long null2Default(Long originNumber, long defaultNumber) {
- return originNumber == null ? defaultNumber : originNumber;
- }
- }
|