From f2f4e7f8fbb97085c195ddd26876fc6d48190ca4 Mon Sep 17 00:00:00 2001 From: Looly Date: Wed, 12 Feb 2025 15:04:11 +0800 Subject: [PATCH] add methods --- .../org/dromara/hutool/core/math/NumberUtil.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java index 12169e448..7ea682fea 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java @@ -737,7 +737,7 @@ public class NumberUtil extends NumberValidator { // region ----- equals /** - * 比较数字值是否相等,相等返回{@code true}
+ * 比较数字是否相等,相等返回{@code true}
* 需要注意的是{@link BigDecimal}需要特殊处理
* BigDecimal使用compareTo方式判断,因为使用equals方法也判断小数位数,如2.0和2.00就不相等,
* 此方法判断值相等时忽略精度的,即0.00 == 0 @@ -760,6 +760,20 @@ public class NumberUtil extends NumberValidator { } return Objects.equals(number1, number2); } + + /** + * 比较数字值是否相等,相等返回{@code true}
+ * 此方法与{@link #equals(Number, Number)}不同点在于,如果提供的number类型不同,则统一转换为{@link BigDecimal}再比较
+ * 即无论数字为什么类型,只要转换为{@link BigDecimal}比较,忽略数字类型 + * + * @param number1 数字1 + * @param number2 数字2 + * @return 是否相等 + * @see #equals(Number, Number) + */ + public static boolean valueEquals(final Number number1, final Number number2) { + return equals(toBigDecimal(number1), toBigDecimal(number2)); + } // endregion // region ----- toStr