diff --git a/CHANGELOG.md b/CHANGELOG.md index a835bd400..89cb97437 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.8.20(2023-05-31) +# 5.8.20(2023-06-01) ### 🐣新特性 * 【core 】 UrlQuery增加setStrict方法,区分是否严格模式(issue#I78PB1@Gitee) @@ -10,6 +10,7 @@ ### 🐞Bug修复 * 【core 】 修复TreeUtil.getParentsName()获取到的路径集合中存在值为null的路径名称问题(issue#I795IN@Gitee) +* 【core 】 修复umberUtil.parseNumber对+解析问题(issue#I79VS7@Gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.19(2023-05-27) 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 45818ab96..d5ec89798 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 @@ -2601,6 +2601,9 @@ public class NumberUtil { if (StrUtil.startWithIgnoreCase(numberStr, "0x")) { // 0x04表示16进制数 return Long.parseLong(numberStr.substring(2), 16); + }else if(StrUtil.startWith(numberStr, '+')){ + // issue#I79VS7 + numberStr = StrUtil.subSuf(numberStr, 1); } try { 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 dd5efc9e4..6853eda97 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 @@ -600,4 +600,12 @@ public class NumberUtilTest { 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"))); } + + @Test + public void issueI79VS7Test() { + final String value = "+0.003"; + if(NumberUtil.isNumber(value)) { + Assert.assertEquals(0.003, NumberUtil.parseNumber(value).doubleValue(), 0); + } + } }