diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberParser.java b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberParser.java index 9038c4685..3c8779b23 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberParser.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberParser.java @@ -297,6 +297,7 @@ public class NumberParser { // issue#I79VS7 numberStr = StrUtil.subSuf(numberStr, 1); } + try { final NumberFormat format = NumberFormat.getInstance(locale); if (format instanceof DecimalFormat) { diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java index e81fd333e..561a86959 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/math/NumberUtil.java @@ -898,12 +898,12 @@ public class NumberUtil extends NumberValidator { } // Float、Double等有精度问题,转换为字符串后再转换 - return toBigDecimal(number.toString()); + return new BigDecimal(number.toString()); } /** * 数字转{@link BigDecimal}
- * null或""或空白符转换为0 + * null或""或"NaN"或空白符转换为0 * * @param numberStr 数字字符串 * @return {@link BigDecimal} @@ -927,7 +927,7 @@ public class NumberUtil extends NumberValidator { /** * 数字转{@link BigInteger}
- * null转换为0 + * null或"NaN"转换为0 * * @param number 数字 * @return {@link BigInteger} diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/math/Issue3423Test.java b/hutool-core/src/test/java/org/dromara/hutool/core/math/Issue3423Test.java new file mode 100644 index 000000000..9579a300f --- /dev/null +++ b/hutool-core/src/test/java/org/dromara/hutool/core/math/Issue3423Test.java @@ -0,0 +1,28 @@ +package org.dromara.hutool.core.math; + +import org.dromara.hutool.core.lang.Console; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.text.ParseException; + +public class Issue3423Test { + @Test + public void toBigDecimalOfNaNTest() { + final BigDecimal naN = NumberUtil.toBigDecimal("NaN"); + Assertions.assertEquals(BigDecimal.ZERO, naN); + } + + @Test + @Disabled + public void toBigDecimalOfNaNTest2() throws ParseException { + final NumberFormat format = NumberFormat.getInstance(); + ((DecimalFormat) format).setParseBigDecimal(true); + final Number naN = format.parse("NaN"); + Console.log(naN.getClass()); + } +} diff --git a/hutool-cron/src/main/java/org/dromara/hutool/cron/CronConfig.java b/hutool-cron/src/main/java/org/dromara/hutool/cron/CronConfig.java index 47fbe1a6b..1df148ebf 100644 --- a/hutool-cron/src/main/java/org/dromara/hutool/cron/CronConfig.java +++ b/hutool-cron/src/main/java/org/dromara/hutool/cron/CronConfig.java @@ -31,6 +31,9 @@ public class CronConfig { */ protected boolean matchSecond; + /** + * 构造 + */ public CronConfig(){ } diff --git a/hutool-db/README.md b/hutool-db/README.md index 603876838..97d7fd3bb 100644 --- a/hutool-db/README.md +++ b/hutool-db/README.md @@ -28,7 +28,7 @@ ### SQL相关工具(sql) 提供SQL相关功能,包括SQL变量替换(NamedSql),通过对象完成SQL构建(SqlBuilder)等。 -`SqlSqlExecutor`提供SQL执行的静态方法。 +`SqlExecutor`提供SQL执行的静态方法。 ### 数据库元信息(meta) 通过`MetaUtil`提供数据库表、字段等信息的读取操作。