Browse Source

Merge branch 'v5-dev' of github.com:looly/hutool into v5-dev

Looly 5 years ago
parent
commit
00cd499061
1 changed files with 14 additions and 21 deletions
  1. 14 21
      hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java

+ 14 - 21
hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java

@@ -126,7 +126,7 @@ public class NumberUtil {
 		}
 
 		Number value = values[0];
-		BigDecimal result = new BigDecimal(null == value ? "0" : value.toString());
+		BigDecimal result = null == value ? BigDecimal.ZERO : new BigDecimal(value.toString());
 		for (int i = 1; i < values.length; i++) {
 			value = values[i];
 			if (null != value) {
@@ -150,7 +150,7 @@ public class NumberUtil {
 		}
 
 		String value = values[0];
-		BigDecimal result = new BigDecimal(null == value ? "0" : value);
+		BigDecimal result = null == value ? BigDecimal.ZERO : new BigDecimal(value);
 		for (int i = 1; i < values.length; i++) {
 			value = values[i];
 			if (null != value) {
@@ -266,7 +266,7 @@ public class NumberUtil {
 		}
 
 		Number value = values[0];
-		BigDecimal result = new BigDecimal(null == value ? "0" : value.toString());
+		BigDecimal result = null == value ? BigDecimal.ZERO : new BigDecimal(value.toString());
 		for (int i = 1; i < values.length; i++) {
 			value = values[i];
 			if (null != value) {
@@ -290,7 +290,7 @@ public class NumberUtil {
 		}
 
 		String value = values[0];
-		BigDecimal result = new BigDecimal(null == value ? "0" : value);
+		BigDecimal result = null == value ? BigDecimal.ZERO : new BigDecimal(value);
 		for (int i = 1; i < values.length; i++) {
 			value = values[i];
 			if (null != value) {
@@ -402,15 +402,15 @@ public class NumberUtil {
 	 * @since 4.0.0
 	 */
 	public static BigDecimal mul(Number... values) {
-		if (ArrayUtil.isEmpty(values)) {
+		if (ArrayUtil.isEmpty(values) || ArrayUtil.hasNull(values)) {
 			return BigDecimal.ZERO;
 		}
 
 		Number value = values[0];
-		BigDecimal result = new BigDecimal(null == value ? "0" : value.toString());
+		BigDecimal result = new BigDecimal(value.toString());
 		for (int i = 1; i < values.length; i++) {
 			value = values[i];
-			result = result.multiply(new BigDecimal(null == value ? "0" : value.toString()));
+			result = result.multiply(new BigDecimal(value.toString()));
 		}
 		return result;
 	}
@@ -436,18 +436,15 @@ public class NumberUtil {
 	 * @since 4.0.0
 	 */
 	public static BigDecimal mul(String... values) {
-		if (ArrayUtil.isEmpty(values)) {
+		if (ArrayUtil.isEmpty(values) || ArrayUtil.hasNull(values)) {
 			return BigDecimal.ZERO;
 		}
 
-		String value = values[0];
-		BigDecimal result = new BigDecimal(null == value ? "0" : value);
+		BigDecimal result =new BigDecimal(values[0]);
 		for (int i = 1; i < values.length; i++) {
-			value = values[i];
-			if (null != value) {
-				result = result.multiply(new BigDecimal(value));
-			}
+			result = result.multiply(new BigDecimal(values[i]));
 		}
+
 		return result;
 	}
 
@@ -460,17 +457,13 @@ public class NumberUtil {
 	 * @since 4.0.0
 	 */
 	public static BigDecimal mul(BigDecimal... values) {
-		if (ArrayUtil.isEmpty(values)) {
+		if (ArrayUtil.isEmpty(values) || ArrayUtil.hasNull(values)) {
 			return BigDecimal.ZERO;
 		}
 
-		BigDecimal value = values[0];
-		BigDecimal result = null == value ? BigDecimal.ZERO : value;
+		BigDecimal result = values[0];
 		for (int i = 1; i < values.length; i++) {
-			value = values[i];
-			if (null != value) {
-				result = result.multiply(value);
-			}
+			result = result.multiply(values[i]);
 		}
 		return result;
 	}