修复Convert.digitToChinese(0)输出金额无元整问题

This commit is contained in:
Looly
2024-07-31 00:15:37 +08:00
parent 8ae3a87174
commit 4bb0a445c4
4 changed files with 12 additions and 3 deletions

View File

@@ -1030,7 +1030,7 @@ public class Convert {
*/
public static String digitToChinese(Number n) {
if (null == n) {
return "";
n = 0;
}
return NumberChineseFormatter.format(n.doubleValue(), true, true);
}

View File

@@ -92,7 +92,7 @@ public class NumberChineseFormatter {
*/
public static String format(double amount, boolean isUseTraditional, boolean isMoneyMode, String negativeName, String unitName) {
if (0 == amount) {
return "";
return isMoneyMode ? "零元整" : "";
}
Assert.checkBetween(amount, -99_9999_9999_9999.99, 99_9999_9999_9999.99,
"Number support only: (-99999999999999.99 ~ 99999999999999.99)");

View File

@@ -435,4 +435,12 @@ public class ConvertTest {
Assert.assertEquals(12, s);
}
@Test
public void issue3662Test() {
String s = Convert.digitToChinese(0);
Assert.assertEquals("零元整", s);
s = Convert.digitToChinese(null);
Assert.assertEquals("零元整", s);
}
}