金额转换
来源:互联网 发布:服务器 定时关机 软件 编辑:程序博客网 时间:2024/05/16 23:41
金额转换,阿拉伯数字的金额转换成中国传统的形式
例如输入:102030456
输出:壹亿零贰佰零叁万零肆佰伍拾陆元
代码示例:
public class Test{private static final char[] data = new char[]{'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'}; private static final char[] units = new char[]{'元','拾','佰','仟','万','拾','佰','仟','亿'};public static String convert(int money){StringBuffer sbf = new StringBuffer();int unit = 0;while(money!=0){sbf.insert(0,units[unit++]);sbf.insert(0,data[money%10]);money /= 10;}return sbf.toString().replaceAll("零[拾佰仟]","零").replaceAll("零+万","万").replaceAll("零+元","元").replaceAll("零+","零");}public static void main(String[] args) {System.out.println(convert(102030456));}}
上边的例子是到亿级别的,下边介绍到兆级别
public class Test{private static final char[] data = { '零','壹','贰','叄','肆', '伍','陆','柒', '捌', '玖' };private static final char[] units = { '圆','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','兆'}; public static String convert(long money) { StringBuffer sbf = new StringBuffer(); if(money==0) return "零圆";int uint = 0;//插入单位角标while (money != 0) { sbf.insert(0, units[uint++]); sbf.insert(0, data[(int) (money % 10)]); money = money / 10; } return sbf.toString().replaceAll("零[仟佰拾]", "零").replaceAll("零+万", "万").replaceAll("零+亿", "亿").replaceAll("亿万", "亿零").replaceAll("兆亿", "兆零").replaceAll("零+", "零").replaceAll("零?圆","圆整"); }public static void main(String[] args) { long num = 999999999;System.out.println(convert(num)); }}
输出:玖亿玖仟玖佰玖拾玖万玖仟玖佰玖拾玖圆整
阅读全文
0 0
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 金额转换
- 转换金额
- 金额转换
- 金额转换
- 数字金额转换汉字金额
- 数字金额转换汉字金额
- 金额转换,把金额转换成为汉字大写金额!
- Ajax-combobox动态绑定数据
- Modbus协议学习(四)
- UVA 11082 Matrix Decompressing——抽象建图+最大流
- 英语学习记录
- 【Spring】手动实现AOP编程(十一)
- 金额转换
- LAMP环境搭建Wordpress
- 训练总结 10.8
- Hadoop基于Linux-CentOS7安装-初识Linux
- 工作流的 CDUR
- 复现数据集画的GT框matlab代码
- QTcpSocket readAll 后程序崩溃
- 最小二乘法推导和证明(matlab代码实现)
- POJ 3691 DNA repair 笔记