public static String transAmount2Chinese(long amount) {
//每4位一组,每一组多一位分隔符splits
String[] unit = {"", "拾", "佰", "仟"};
//个、十、百、千、万、十万、百万、千万、亿、十亿、百亿、千亿 、兆、十兆、百兆、千兆、
//京、十京、百京、千京、垓、十垓、百垓、千垓、秭、十秭、百秭、千秭、穰、十穰、百穰、千穰、沟、十沟、百沟...
String[] splits = {"元", "万", "亿", "兆"};
String[] number = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
int split = -1;
StringBuilder res = new StringBuilder();
boolean needZero = false;
for (int i = 0; amount != 0; amount = amount / 10, i = ++i % 4) {
int num = (int) (amount % 10);
if (i == 0) {
split++;
if (amount % 10000 != 0) {
res.insert(0, splits[split]);
}
}
String big;
if (num == 0) {
big = number[num];
if (needZero) {
res.insert(0, big);
needZero = false;
}
} else {
big = number[num] + unit[i];
needZero = i != 3;
res.insert(0, big);
}
}
return res.toString();
}
数字金额转中文大写金额
最新推荐文章于 2023-09-07 11:27:18 发布