最近做解析描述时提取到金额字段后,需要将文本中的大写金额转换成数字,然而发现很多博客里的程序又问题,在亿和万级中,如果出现百十千等小单位就会出错,先算成小单位然后遇到大单位如万在乘以1000导致金额出错。
于是更正代码如下:
/**
* 大写金额转数字
*
*/
public static String ChineseConvertToNumber(String chineseAmount) {
if (chineseAmount == null || chineseAmount.length() <= 0 || chineseAmount == "") {
return null;
}
//移除计算干扰文字
chineseAmount = chineseAmount
.replace("元", "")
.replace("整", "");
// 字符切割
char[] wordCharArray = chineseAmount.toCharArray();
//最终要返回的数字金额
BigDecimal numberAmount = BigDecimal.ZERO;
//金额位标志量
//表示有分位
boolean fen = false;
//表示有角位
boolean jiao = false;
// 表示个位不为0
boolean yuan = false;
//表示有十位
boolean shi = false;
//表示有百位
boolean bai = false;
//表示有千位
boolean qian = false;
//表示有万位
boolean wan = false;
//表示有亿位
boolean yi = false;
//从低位到高位计算
for (int i = (wordCharArray.length - 1); i >=
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- nryq.cn 版权所有 赣ICP备2024042798号-6
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务