将数字字符串转换成大写金额字符串
2008-01-05 18:46:39 来源:WEB开发网核心提示: //将数字字符串转换成大写金额字符串 //@author 何禧 //@created 2004/11/15 19:37 //@param 数字字符串 //@return 大写金额字符串 //@throws Exception //可处理的情况包括如下这些数字形式: [.] [0.] [.0] [.3] [.32] [
//将数字字符串转换成大写金额字符串 //@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;i0) ) 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(); }
- ››字符串分割
- ››字符串格式化工具
- ››数字笔画输入法免费版发布-惠及万民
- ››数字 正则表达式
- ››转换工具介绍
- ››数字化校园服务器 虚拟化技术整合
- ››数字4D立体影院解决方案
- ››转换为RTF格式恢复Word文档
- ››字符串近似匹配算法
- ››字符串分割的两种方法
- ››转换大写中文数字
- ››转换 SQL数据库时的疑难问题
更多精彩
赞助商链接