From 0ad26a61ed663861af6bb960eab32c451cc406a9 Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 1 Jun 2023 18:02:36 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DumberUtil.parseNumber?= =?UTF-8?q?=E5=AF=B9+=E8=A7=A3=E6=9E=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 ++- .../src/main/java/cn/hutool/core/util/NumberUtil.java | 3 +++ .../src/test/java/cn/hutool/core/util/NumberUtilTest.java | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) 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); + } + } }