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"))); + } }