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 96f17de45..f7de88e65 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/NumberUtil.java @@ -2493,6 +2493,58 @@ public class NumberUtil { return true; } + /** + * 检查value是否在[min,max]范围内 + * + * @param min 最小值 + * @param max 最大值 + * @param value 被检查值 + * @return 检查结果,范围内将返回true,否则返回false + * @since 5.5.4 + */ + public static boolean isBetween(int min, int max, int value) { + return value >= min && value <= max; + } + + /** + * 检查value是否在[min,max]范围内 + * + * @param min 最小值 + * @param max 最大值 + * @param value 被检查值 + * @return 检查结果,范围内将返回true,否则返回false + * @since 5.5.4 + */ + public static boolean isBetween(long min, long max, long value) { + return value >= min && value <= max; + } + + /** + * 检查value是否在[min,max]范围内 + * + * @param min 最小值 + * @param max 最大值 + * @param value 被检查值 + * @return 检查结果,范围内将返回true,否则返回false + * @since 5.5.4 + */ + public static boolean isBetween(float min, float max, float value) { + return value >= min && value <= max; + } + + /** + * 检查value是否在[min,max]范围内 + * + * @param min 最小值 + * @param max 最大值 + * @param value 被检查值 + * @return 检查结果,范围内将返回true,否则返回false + * @since 5.5.4 + */ + public static boolean isBetween(double min, double max, double value) { + return value >= min && value <= max; + } + // ------------------------------------------------------------------------------------------- Private method start private static int mathSubnode(int selectNum, int minNum) { if (selectNum == minNum) { 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 cbd632a0f..5db2db167 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 @@ -303,4 +303,12 @@ public class NumberUtilTest { Assert.assertEquals("0", NumberUtil.toStr(NumberUtil.sub(new BigDecimal("9600.0000000000"), new BigDecimal("9600.000000")))); Assert.assertEquals("0", NumberUtil.toStr(new BigDecimal("9600.00000").subtract(new BigDecimal("9600.000000000")))); } + + @Test + public void isBetweenTest() { + Assert.assertTrue(NumberUtil.isBetween(0, 1, 0)); + Assert.assertTrue(NumberUtil.isBetween(0l, 1l, 1l)); + Assert.assertTrue(NumberUtil.isBetween(0.1f, 0.2f, 0.19f)); + Assert.assertTrue(NumberUtil.isBetween(0.1, 0.2, 0.19)); + } }