mirror of
https://gitee.com/dromara/hutool.git
synced 2025-04-05 17:37:59 +08:00
修复Convert.chineseMoneyToNumber角分丢失问题
This commit is contained in:
parent
874e33458e
commit
53204e5e5b
@ -21,6 +21,7 @@
|
||||
* 【extra 】 修复Ftp中路径问题(issue#I5R2DE@Gitee)
|
||||
* 【core 】 修复ConcurrentHashMap.computeIfAbsent缺陷导致的问题
|
||||
* 【core 】 修复DateUtil.parseUTC时对-的处理问题(issue#2612@Github)
|
||||
* 【core 】 修复Convert.chineseMoneyToNumber角分丢失问题(issue#2611@Github)
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
@ -237,7 +237,6 @@ public class NumberChineseFormatter {
|
||||
|
||||
/**
|
||||
* 中文大写数字金额转换为数字,返回结果以元为单位的BigDecimal类型数字
|
||||
*
|
||||
* 如:
|
||||
* “陆万柒仟伍佰伍拾陆元叁角贰分”返回“67556.32”
|
||||
* “叁角贰分”返回“0.32”
|
||||
@ -310,8 +309,8 @@ public class NumberChineseFormatter {
|
||||
}
|
||||
|
||||
BigDecimal amount = new BigDecimal(y);
|
||||
amount = amount.add(BigDecimal.valueOf(j).divide(BigDecimal.TEN, RoundingMode.HALF_UP));
|
||||
amount = amount.add(BigDecimal.valueOf(f).divide(BigDecimal.valueOf(100), RoundingMode.HALF_UP));
|
||||
amount = amount.add(BigDecimal.valueOf(j).divide(BigDecimal.TEN, 2, RoundingMode.HALF_UP));
|
||||
amount = amount.add(BigDecimal.valueOf(f).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
|
||||
return amount;
|
||||
}
|
||||
|
||||
@ -440,7 +439,6 @@ public class NumberChineseFormatter {
|
||||
|
||||
/**
|
||||
* 把中文转换为数字 如 二百二十 220<br>
|
||||
* 见:https://www.d5.nz/read/sfdlq/text-part0000_split_030.html
|
||||
* <ul>
|
||||
* <li>一百一十二 -》 112</li>
|
||||
* <li>一千零一十二 -》 1012</li>
|
||||
|
@ -419,12 +419,12 @@ public class ConvertTest {
|
||||
*/
|
||||
Assert.assertEquals(67556, Convert.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆圆").longValue());
|
||||
Assert.assertEquals(67556, Convert.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元").longValue());
|
||||
Assert.assertEquals(0.3D, Convert.chineseMoneyToNumber("叁角").doubleValue(), 2);
|
||||
Assert.assertEquals(0.02, Convert.chineseMoneyToNumber("贰分").doubleValue(), 2);
|
||||
Assert.assertEquals(67556.3, Convert.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元叁角").doubleValue(), 2);
|
||||
Assert.assertEquals(67556.02, Convert.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元贰分").doubleValue(), 2);
|
||||
Assert.assertEquals(0.32, Convert.chineseMoneyToNumber("叁角贰分").doubleValue(), 2);
|
||||
Assert.assertEquals(67556.32, Convert.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元叁角贰分").doubleValue(), 2);
|
||||
Assert.assertEquals(0.3D, Convert.chineseMoneyToNumber("叁角").doubleValue(), 0);
|
||||
Assert.assertEquals(0.02, Convert.chineseMoneyToNumber("贰分").doubleValue(), 0);
|
||||
Assert.assertEquals(67556.3, Convert.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元叁角").doubleValue(), 0);
|
||||
Assert.assertEquals(67556.02, Convert.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元贰分").doubleValue(), 0);
|
||||
Assert.assertEquals(0.32, Convert.chineseMoneyToNumber("叁角贰分").doubleValue(), 0);
|
||||
Assert.assertEquals(67556.32, Convert.chineseMoneyToNumber("陆万柒仟伍佰伍拾陆元叁角贰分").doubleValue(), 0);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user