服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

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

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

扫描关注微信公众号