| 
					
				 | 
			
			
				@@ -12,12 +12,65 @@ import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class BigDecimalUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * 转换BigDecimal,如value==null,直接返回null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @author Andy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @date 17:20 2021/9/9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @return java.math.BigDecimal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static BigDecimal convert(Object value){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (value == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (value instanceof BigDecimal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return (BigDecimal) value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new BigDecimal(value.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * 转换BigDecimal,如value==null,返回初始值0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @author Andy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @date 17:21 2021/9/9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @return java.math.BigDecimal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static BigDecimal convertDefault(Object value){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (value == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return new BigDecimal("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (value instanceof BigDecimal) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return (BigDecimal) value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new BigDecimal(value.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * 百分比计算,不进行四舍五入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @author Andy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @date 17:00 2021/9/9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param scale: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @return java.lang.String 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static String percentDivideDown(Object value, Object value2, int scale){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return divideDown(value, value2, scale).multiply(new BigDecimal("100")).stripTrailingZeros().toPlainString() + "%"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return divideDown(value, value2, scale).multiply(convert("100")).stripTrailingZeros().toPlainString() + "%"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * 百分比计算,进行四舍五入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @author Andy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @date 17:01 2021/9/9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param scale: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @return java.lang.String 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static String percentDivide(Object value, Object value2, int scale){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return divide(value, value2, scale).multiply(new BigDecimal("100")).stripTrailingZeros().toPlainString() + "%"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return divide(value, value2, scale).multiply(convert("100")).stripTrailingZeros().toPlainString() + "%"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -28,7 +81,7 @@ public class BigDecimalUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return java.math.BigDecimal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static BigDecimal divideDown(Object value, Object value2, int scale){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return new BigDecimal(value.toString()).divide(new BigDecimal(value2.toString()), scale, RoundingMode.DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convertDefault(value).divide(convertDefault(value2), scale, RoundingMode.DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -39,7 +92,7 @@ public class BigDecimalUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return java.math.BigDecimal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static BigDecimal divide(Object value, Object value2, int scale){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return new BigDecimal(value.toString()).divide(new BigDecimal(value2.toString()), scale, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convertDefault(value).divide(convertDefault(value2), scale, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static double divideToDouble(Object value, Object value2, int scale){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -47,7 +100,7 @@ public class BigDecimalUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static BigDecimal setScale(Object value, int scale){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return new BigDecimal(value.toString()).setScale(scale, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convertDefault(value).setScale(scale, BigDecimal.ROUND_HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -63,7 +116,7 @@ public class BigDecimalUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return java.math.BigDecimal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static BigDecimal multiply(Object value, Object value2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return multiply(new BigDecimal(value.toString()), new BigDecimal(value2.toString()), 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return multiply(convertDefault(value), convertDefault(value2), 2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -75,7 +128,7 @@ public class BigDecimalUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return java.math.BigDecimal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static BigDecimal subtract(Object value, Object value2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return subtract(new BigDecimal(value.toString()), new BigDecimal(value2.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return subtract(convert(value), convert(value2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -107,7 +160,7 @@ public class BigDecimalUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return java.math.BigDecimal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static BigDecimal add(Object value, Object value2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return new BigDecimal(value.toString()).add(new BigDecimal(value2.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convertDefault(value).add(convertDefault(value2)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -125,7 +178,71 @@ public class BigDecimalUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (value == null || value2 == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return new BigDecimal(value.toString()).compareTo(new BigDecimal(value2.toString())) == 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convert(value).compareTo(convert(value2)) == 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * 大于等于 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @author Andy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @date 17:04 2021/9/9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @return boolean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static boolean gte(Object value, Object value2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (value == null || value2 == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convert(value).compareTo(convert(value2)) > -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * 大于 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @author Andy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @date 17:04 2021/9/9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @return boolean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static boolean gt(Object value, Object value2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (value == null || value2 == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convert(value).compareTo(convert(value2)) == 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * 小于等于 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @author Andy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @date 17:04 2021/9/9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @return boolean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static boolean lte(Object value, Object value2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (value == null || value2 == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convert(value).compareTo(convert(value2)) < 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * 小于 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @author Andy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @date 17:04 2021/9/9 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @param value2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    * @return boolean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    **/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static boolean lt(Object value, Object value2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (value == null || value2 == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return convert(value).compareTo(convert(value2)) == -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public static void main(String[] args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        System.out.println(new BigDecimal("12.150")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        System.out.println(convert(12.150 + "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |