1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 金额小写转换成大写

金额小写转换成大写

时间:2024-01-25 07:12:19

相关推荐

金额小写转换成大写

/**

* 金额小写转换成大写

* @param num

* @return

* @throws Exception

*/

public static String digitUppercase(String num) throws Exception {

String fraction[] = { "角", "分" };

String digit[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };

String unit1[] = { "", "拾", "佰", "仟" };

String unit2[] = { "元", "万", "亿", "万亿" };

BigDecimal bigDecimal = new BigDecimal(num);

bigDecimal = bigDecimal.multiply(new BigDecimal(100));

String strVal = String.valueOf(bigDecimal.toBigInteger());

String head = "";

String end = "";

if(strVal.length()<2){

return "零元整";

}else{

head = strVal.substring(0, strVal.length() - 2);

end = strVal.substring(strVal.length() - 2);

}

String endMoney = "";

String headMoney = "";

if ("00".equals(end)) {

endMoney = "整";

} else {

if (!end.substring(0, 1).equals("0")) {

endMoney += digit[Integer.valueOf(end.substring(0, 1))

.intValue()] + "角";

} else if (end.substring(0, 1).equals("0")

&& !end.substring(1, 2).equals("0")) {

endMoney += "零";

}

if (!end.substring(1, 2).equals("0")) {

endMoney += digit[Integer.valueOf(end.substring(1, 2))

.intValue()] + "分";

}

}

char[] chars = head.toCharArray();

Map map = new HashMap();

boolean zeroKeepFlag = false;

int vidxtemp = 0;

for (int i = 0; i < chars.length; i++) {

int idx = (chars.length - 1 - i) % 4;

int vidx = (chars.length - 1 - i) / 4;

String s = digit[Integer.valueOf(String.valueOf(chars[i]))

.intValue()];

if (!"零".equals(s)) {

headMoney += s + unit1[idx] + unit2[vidx];

zeroKeepFlag = false;

} else if (i == chars.length - 1 || map.get("zero" + vidx) != null) {

headMoney += "";

} else {

headMoney += s;

zeroKeepFlag = true;

map.put("zero" + vidx, "1");

}

if (vidxtemp != vidx || i == chars.length - 1) {

headMoney = headMoney.replaceAll(unit2[vidx], "");

headMoney += unit2[vidx];

}

if (zeroKeepFlag && (chars.length - 1 - i) % 4 == 0) {

headMoney = headMoney.replaceAll("零", "");

}

}

return headMoney + endMoney;

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。