将数字字符串转换成大写金额字符串
2004-11-18 10:13
351 查看
//将数字字符串转换成大写金额字符串 //@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(); }
相关文章推荐
- C++中数字与字符串之间的转换
- 数字转换成字符串
- A + B问题(字符串与数字之间的转换)
- ABAP--将数字金额转换为人民币大写字符串(增加UNICODE版本)
- 不同进制的数字字符串互相转换
- C语言将字符串转换成对应的数字(十进制、十六进制)
- VC中数字与字符串转换方法
- js-数字、字符串、布尔值的转换方式
- python 数字和字符串转换问题
- SQL SERVER 2005字符串转换为数字
- PHP数据类型转换(字符串转数字,数字转字符串)
- C++中数字与字符串之间的转换
- C语言中将字符串转换为数字的方法
- 怎样将数字转换为字符串?
- C++ Primer 学习笔记:数字 && 字符串转换
- C语言字符串与数字之间的相互转换
- js 类型转换 数组 字符串 时间 数字
- 将数字字符串转换为整数
- 将数字字符串格式转换为原来字符串中出现的字符+该字符连续出现的次数的字符串P231
- 将十六进制字符串转换成十进制数字