public class Convertor{
/**
* 根据给定的int的金额,转换成中文的大写金额
*
* @param money
* 给定的int的金额
* @return 中文的大写金额
*/
public static String convertCurrency(int money) {
final String CN_NUM = "零壹贰叁肆伍陆柒捌玖";
final String CN_UNIT = "圆拾百千万拾百千亿拾百千万";
StringBuilder sb = new StringBuilder();
// 0的个数
int zero_num = 0;
// 金额的倍数
int num_len = String.valueOf(money).length();
// 金额中的第位代表的数字
int tmp;
// 从后往前分析:个,十...
for (int i = 0; i < num_len; i++) {
// 与10取模
tmp = money % 10;
if (tmp == 0) {
zero_num++;
// 圆,万,亿
if (i == 0 || i == 4 || i == 8) {
sb.append(CN_UNIT.charAt(i));
zero_num = 0;
}
} else {
if (zero_num > 0) {
sb.append("零");
zero_num = 0;
}
sb.append(CN_UNIT.charAt(i));
sb.append(CN_NUM.charAt((int) tmp));
}
// 金额往前移动一位
money = money / 10;
}
//
if (sb.charAt(1) == '零') {
sb.deleteCharAt(1);
}
return sb.reverse().toString();
}
public static void main(String[] args) {
System.out.println(convertCurrency(1987650011));
}
}
数字金额转换成中文金额
最新推荐文章于 2020-06-16 19:43:50 发布