金额转成人民币大写


/**
* 把金额转成人民币大写
* @param n0
* @return
*/
private String money(String n0){
String sChi= "零壹贰叁肆伍陆柒捌玖整分角元拾佰仟万拾佰仟亿拾佰仟万";
if (n0== null || n0 == "") {
return "零元";
} else {
java.text.DecimalFormat df=new java.text.DecimalFormat("0.00");
n0 = df.format(Double.parseDouble(n0));
}
int L=n0.length()-3; //整数部分长度
boolean Z=false, zL, zR;
zL= Long.valueOf( n0.substring(0,L))==0; //整数部分是否为零
zR= Long.valueOf( n0.substring(L+1,L+3))==0; //小数部分是否为零
if (zL && zR) return "零元"; //零值退出
char s0, s1;
StringBuffer sL= new StringBuffer(); //转换后的整数串
StringBuffer sR= new StringBuffer(); //转换后的小数串
int n;
for(int i=0; i<L; i++) //整数部分
{
s0=0; s1=0;
n= n0.charAt(L-i-1)-'0'; //数值
if(!(n==0 &&(Z || i==8 || i==4 || i==0) || zL) ) //Z:前一个字符是否为0
s0= sChi.charAt(n); //值字符
if(!(n==0 &&(i!=8 && i!=4 && i!=0 || Z && i==1) || zL) )
s1= sChi.charAt(i+13); //单位字符
if(s1>0) sL.insert(0, s1);
if(s0>0) sL.insert(0, s0);
Z= n==0; //当前处理的字符是否为0
}
int pos= sL.indexOf("亿万"); //是否有"亿万"
if(pos>0) sL.deleteCharAt(pos+1); //如有则删除
for(int i=0; i<2; i++) //小数部分
{
s0=0; s1=0;
n= n0.charAt(L+2-i)-'0'; //数值
if( n>0 || (n==0 && i==1 && !Z && !zL) ) //大于零、或角位为零而分位大于零
s0= sChi.charAt(n); //值
if( n>0 )
s1= sChi.charAt(i+11); //单位
if( n==0 && i==0 ) //分位为零
s1='整';
if(s1>0) sR.insert(0, s1);
if(s0>0) sR.insert(0, s0);
Z= n==0;
}
sL.append(sR);
return sL.toString();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值