java中人民币金额转换

金额转换程序解析

金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。

public class RenMinBi { private static final char[] data = new char[]{ '零','壹','贰','叁','肆','伍','陆','柒','捌','玖' }; private static final char[] units = new char[]{ '元','拾','佰','仟','万','拾','佰','仟','亿' }; public static void main(String[] args) { // TODO Auto-generated method stub System.out.println( convert(135689123)); } public static String convert(int money) { StringBuffer sb = new StringBuffer(); int unit = 0; while(money!=0) { sb.insert(0,units[unit++]); System.out.println(sb); int number = money%10;//求最后一位数 System.out.println("number:"+number); sb.insert(0, data[number]); System.out.println(sb); money /= 10;//去掉数值的后一位 System.out.println("money:"+money); } return sb.toString(); } }

为了能够说明整个问题,在程序里面加入了一些打印的信息,从打印的信息里面就非常清楚的说明了程序的执行流程和原理:

number:3

叁元

money:13568912

拾叁元

number:2

贰拾叁元

money:1356891

佰贰拾叁元

number:1

壹佰贰拾叁元

money:135689

仟壹佰贰拾叁元

number:9

玖仟壹佰贰拾叁元

money:13568

万玖仟壹佰贰拾叁元

number:8

捌万玖仟壹佰贰拾叁元

money:1356

拾捌万玖仟壹佰贰拾叁元

number:6

陆拾捌万玖仟壹佰贰拾叁元

money:135

佰陆拾捌万玖仟壹佰贰拾叁元

number:5

伍佰陆拾捌万玖仟壹佰贰拾叁元

money:13

仟伍佰陆拾捌万玖仟壹佰贰拾叁元

number:3

叁仟伍佰陆拾捌万玖仟壹佰贰拾叁元

money:1

亿叁仟伍佰陆拾捌万玖仟壹佰贰拾叁元

number:1

壹亿叁仟伍佰陆拾捌万玖仟壹佰贰拾叁元

money:0

壹亿叁仟伍佰陆拾捌万玖仟壹佰贰拾叁元

感觉这种处理的方式和之前在Android上计算文件大小时用到的处理文件大小的思路是一样的,都是采用了除以某个数的形式:

private static String formatFileSize(long filesize) { DecimalFormat df = new DecimalFormat("#.##"); if (filesize >= 1024d * 1024d * 0.8d) return df.format(filesize / (1024d * 1024d)) + "M"; else if (filesize >= 1024d * 0.8d) return df.format(filesize / 1024d) + "K"; else if (filesize == 0) return df.format(filesize) + "Byte"; return df.format(filesize) + "Bytes"; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值