首页 > 学院 > 开发设计 > 正文

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

2019-11-18 11:22:52
字体:
来源:转载
供稿:网友

 //将数字字符串转换成大写金额字符串 //@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(); }



发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表