The NumberUtil.toBigDecimal method in hutool-core v5.8.23 was discovered to contain a stack overflow.
### 版本情况

JDK版本：    openjdk_8_201
hutool-core： 5.8.23（请确保最新尝试是否还有问题）

### 问题描述（包括截图）
在hutool-core的5.8.23版本中，调用NumberUtil.toBigDecimal方法时，如果入参为“NaN”，程序会崩溃，报StackOverflowError

1. 复现代码

```java
import org.junit.Test;
import cn.hutool.core.util.*;
import java.math.BigDecimal;
public class NumberUtilFuzzerToBigDecimal {
    @Test
    public void toBigDecimalFuzzerTest() {
        try {
            BigDecimal result = NumberUtil.toBigDecimal("NaN");
        } catch (Exception e) {
        }
    }
}
```

2. 堆栈信息
```
java.lang.StackOverflowError
	at java.base/sun.util.locale.provider.LocaleResources.getDecimalFormatSymbolsData(LocaleResources.java:172)
	at java.base/java.text.DecimalFormatSymbols.initialize(DecimalFormatSymbols.java:628)
	at java.base/java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:113)
	at java.base/sun.util.locale.provider.DecimalFormatSymbolsProviderImpl.getInstance(DecimalFormatSymbolsProviderImpl.java:85)
	at java.base/java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:180)
	at java.base/sun.util.locale.provider.NumberFormatProviderImpl.getInstance(NumberFormatProviderImpl.java:183)
	at java.base/sun.util.locale.provider.NumberFormatProviderImpl.getNumberInstance(NumberFormatProviderImpl.java:149)
	at java.base/java.text.NumberFormat.getInstance(NumberFormat.java:921)
	at java.base/java.text.NumberFormat.getInstance(NumberFormat.java:907)
	at java.base/java.text.NumberFormat.getInstance(NumberFormat.java:475)
	at cn.hutool.core.util.NumberUtil.parseNumber(NumberUtil.java:2686)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
        ...
```

NumberUtil.toBigDecimal方法报StackOverflowError
This is a GitHub Issue
repo:hutool
owner:dromara
Title : NumberUtil.toBigDecimal方法报StackOverflowError
Issue date:

--- start body ---
### 版本情况

JDK版本：    openjdk_8_201
hutool-core： 5.8.23（请确保最新尝试是否还有问题）

### 问题描述（包括截图）
在hutool-core的5.8.23版本中，调用NumberUtil.toBigDecimal方法时，如果入参为“NaN”，程序会崩溃，报StackOverflowError

1. 复现代码

```java
import org.junit.Test;
import cn.hutool.core.util.*;
import java.math.BigDecimal;
public class NumberUtilFuzzerToBigDecimal {
    @Test
    public void toBigDecimalFuzzerTest() {
        try {
            BigDecimal result = NumberUtil.toBigDecimal("NaN");
        } catch (Exception e) {
        }
    }
}
```

2. 堆栈信息
```
java.lang.StackOverflowError
	at java.base/sun.util.locale.provider.LocaleResources.getDecimalFormatSymbolsData(LocaleResources.java:172)
	at java.base/java.text.DecimalFormatSymbols.initialize(DecimalFormatSymbols.java:628)
	at java.base/java.text.DecimalFormatSymbols.<init>(DecimalFormatSymbols.java:113)
	at java.base/sun.util.locale.provider.DecimalFormatSymbolsProviderImpl.getInstance(DecimalFormatSymbolsProviderImpl.java:85)
	at java.base/java.text.DecimalFormatSymbols.getInstance(DecimalFormatSymbols.java:180)
	at java.base/sun.util.locale.provider.NumberFormatProviderImpl.getInstance(NumberFormatProviderImpl.java:183)
	at java.base/sun.util.locale.provider.NumberFormatProviderImpl.getNumberInstance(NumberFormatProviderImpl.java:149)
	at java.base/java.text.NumberFormat.getInstance(NumberFormat.java:921)
	at java.base/java.text.NumberFormat.getInstance(NumberFormat.java:907)
	at java.base/java.text.NumberFormat.getInstance(NumberFormat.java:475)
	at cn.hutool.core.util.NumberUtil.parseNumber(NumberUtil.java:2686)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2227)
	at cn.hutool.core.util.NumberUtil.toBigDecimal(NumberUtil.java:2250)
        ...
```

--- end body ---

The issue in the NumberUtil.toBigDecimal method of Hutool v5.8.23 leads to a StackOverflowError when the input parameter is 'NaN'. This indicates a potential vulnerability where the application can crash due to improper handling of specific input values, which could be exploited in a denial-of-service attack.