diff --git a/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java
index 902e2b3c5..419c5a4ff 100755
--- a/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java
@@ -1813,6 +1813,24 @@ public class NumberUtil {
return bigNum1.compareTo(bigNum2) <= 0;
}
+ /**
+ * 检查值是否在指定范围内
+ *
+ * @param value 值
+ * @param min 最小值(包含)
+ * @param max 最大值(包含)
+ * @return 经过检查后的值
+ **/
+ public static boolean isIn(final BigDecimal value, final BigDecimal min,final BigDecimal max){
+ Assert.notNull(value);
+ Assert.notNull(min);
+ Assert.notNull(max);
+ if(isGreaterOrEqual(value,min) && isLessOrEqual(value,max)){
+ return true;
+ }
+ return false;
+ }
+
/**
* 比较大小,值相等 返回true
* 此方法通过调用{@link Double#doubleToLongBits(double)}方法来判断是否相等
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java
index d4ab4b079..9246d2c04 100644
--- a/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/util/NumberUtilTest.java
@@ -463,4 +463,12 @@ public class NumberUtilTest {
Assert.assertFalse(NumberUtil.isDouble(" "));
}
+ @Test
+ public void range(){
+ Assert.assertFalse(NumberUtil.isIn(new BigDecimal("1"),new BigDecimal("2"),new BigDecimal("12")));
+ Assert.assertTrue(NumberUtil.isIn(new BigDecimal("1"),new BigDecimal("1"),new BigDecimal("2")));
+ Assert.assertTrue(NumberUtil.isIn(new BigDecimal("1"),new BigDecimal("0"),new BigDecimal("2")));
+ Assert.assertFalse(NumberUtil.isIn(new BigDecimal("0.23"),new BigDecimal("0.12"),new BigDecimal("0.22")));
+ Assert.assertTrue(NumberUtil.isIn(new BigDecimal("-0.12"),new BigDecimal("-0.3"),new BigDecimal("0")));
+ }
}