将数字字符串转换成大写金额字符串

阅读:6次   时间:2005-06-30 00:00:00   字体:[ ]
 //将数字字符串转换成大写金额字符串 //@author 何禧 //@created 2004/11/15 19:37 //@param 数字字符串 //@return 大写金额字符串 //@throws Exception //可处理的情况包括如下这些数字形式: [.] [0.] [.0] [.3] [.32] [1.] [23] public String cnCurrency(String sNumber) throws Exception {  String sUnit = "分角元拾佰仟万拾佰仟亿拾佰仟兆拾佰仟";  String sChinese = "壹贰叁肆伍陆柒捌玖";  int nUnit;  //货币单位下标  int nDotPos;  //传入的数字中,小数点所在的位置  int nLen;   //长度  int nValue;  //临时数值  int i;   //循环变量  String sInteger; //整数部分  String sDecimal; //小数部分  String sSuffix=""; //后缀部分    if (sNumber == null) throw new Exception("没有传入数字!");  //获取小数点所在位置  nDotPos = sNumber.indexOf(".");  if (nDotPos == -1){   sInteger = (sNumber.equals(""))?"0":sNumber;   sDecimal = "00";  }else{   sNumber = new StringBuffer().append("0").append(sNumber).append("00").toString();   nDotPos = sNumber.indexOf(".");   sInteger = sNumber.substring(0,nDotPos);   sDecimal = sNumber.substring(nDotPos+1).substring(0,2);  }     StringBuffer sbChinese = new StringBuffer();    //开始处理整数部分  nLen = sInteger.length();  for(i=0;i 0) )   sbChinese.append("元");  //开始处理小数部分  if (sDecimal.equals("00")){   sSuffix = "整";  }else{   nValue = Integer.parseInt(sDecimal.substring(0,1));   if (nValue != 0) sbChinese.append(sChinese.substring(nValue-1,nValue)).append(sUnit.substring(1,2));   nValue = Integer.parseInt(sDecimal.substring(1,2));   if (nValue != 0) sbChinese.append(sChinese.substring(nValue-1,nValue)).append(sUnit.substring(0,1));  }  //如果小数部分没写任何内容,  //返回中文结果  if (sbChinese.length() == 0) sSuffix = "零元";  sbChinese.append(sSuffix);  return sbChinese.toString(); }
 源码推荐
关于本站 - 广告服务 - 会员指南 - 联系方法
Copyright ©2003-2011 源码天空 All Rights Reserved