会计的大写
来源:互联网 发布:linux 服务器集群 编辑:程序博客网 时间:2024/04/29 01:15
之前在项目中有对会计方面的处理需求,其中包括凭证中的小写转大写。在会计金额的大写在写法上是需要遵守一些指定的规范,不可随意书写。因此,特意写了一个方法,支持最大到亿及以下到分的金额的写法。
private String[] bigNumber = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
private String getSupNumber(long allMoney){
StringBuffer stringBuffer = new StringBuffer("人民币");
long sum = allMoney;
boolean firstNoZero = false;
int index = 0;
for (long x = 10000000000l; x > 0; x /= 10) {
int value = (int) (sum / x);
if (sum >= x)
firstNoZero = true;
switch (index) {
case 0:
if (firstNoZero && value != 0)
stringBuffer.append(bigNumber[value]).append("亿");
break;
case 1:
case 5:
if (firstNoZero && value != 0)
stringBuffer.append(bigNumber[value]).append("仟");
break;
case 2:
case 6:
if (firstNoZero && value != 0)
stringBuffer.append(bigNumber[value]).append("佰");
break;
case 3:
case 7:
if (firstNoZero && value != 0)
stringBuffer.append(bigNumber[value]).append("拾");
break;
case 4:
if (firstNoZero) {
if (value != 0) {
if (allMoney > 10000000 && allMoney / 10000000 % 10 == 0) {
stringBuffer.append(bigNumber[0]);
}
stringBuffer.append(bigNumber[value]).append("万");
} else if (allMoney % 10000000000l / 1000000 > 0) {
stringBuffer.append("万");
}
}
break;
case 8:
if (firstNoZero) {
if (value != 0) {
if (allMoney > 1000 && allMoney / 1000 % 10 == 0) {
stringBuffer.append(bigNumber[0]);
}
stringBuffer.append(bigNumber[value]);
}
} else {
stringBuffer.append(bigNumber[0]);
}
stringBuffer.append("元");
if (allMoney > 100 && allMoney % 100 == 0)
stringBuffer.append("整");
break;
case 9:
if (value != 0) {
stringBuffer.append(bigNumber[value]).append("角");
if (allMoney % 10 == 0)
stringBuffer.append("整");
} else if (allMoney % 10 != 0) {
stringBuffer.append(bigNumber[0]);
}
break;
case 10:
if (value != 0)
stringBuffer.append(bigNumber[value]).append("分");
break;
}
index++;
sum %= x;
}
String str = stringBuffer.toString();
return (str.equals("人民币零元") ? "" : str);
}
示例如下:
- 会计的大写
- 郁闷的会计(非负整数转换成大写金额的拼音)
- ¥小会计¥ 将一个小于一亿的整数转换成大写金额
- 会计结账的方法
- 会计帐户的分类
- 一个会计的名词解释
- 关于会计的毛利率
- 不一样的会计书
- 会计职业道德教育的途径
- 会计的借贷关系
- 郁闷的会计
- 郁闷的会计
- 会计
- 会计
- 会计
- 会计
- 会计与出纳的区别
- 基础会计的相关理论知识
- 加快android的编译速度
- 浅谈new运算的过程
- JavaScript打印指定div的方法
- OVERLAPPED结构--异步IO
- 华为OJ训练之0002-161227-图片整理-快速排序
- 会计的大写
- 数据结构实验之链表四:有序链表的归并
- POJ 2253 Frogger (Floyd)
- c语言CRC校验
- 图数据库与关系型数据库的区别与联系
- JQuery与一般处理程序之间传递JSON数据
- 华为OJ训练之0003-161228-统计字符
- Gdiplus::Pen的使用
- 我本不属于人间—献给全世界最伟大的女性