1 function transform(tranvalue) {
2 try {
3 var i = 1;
4 var dw2 = new Array("", "万", "亿"); //大单位
5 var dw1 = new Array("拾", "佰", "仟"); //小单位
6 var dw = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //整数部分用
7 //以下是小写转换成大写显示在合计大写的文本框中
8 //分离整数与小数
9 var source = splits(tranvalue);
10 var num = source[0];
11 var dig = source[1];
12 //转换整数部分
13 var k1 = 0; //计小单位
14 var k2 = 0; //计大单位
15 var sum = 0;
16 var str = "";
17 var len = source[0].length; //整数的长度
18 for (i = 1; i <= len; i++) {
19 var n = source[0].charAt(len - i); //取得某个位数上的数字
20 var bn = 0;
21 if (len - i - 1 >= 0) {
22 bn = source[0].charAt(len - i - 1); //取得某个位数前一位上的数字
23 }
24 sum = sum + Number(n);
25 if (sum != 0) {
26 str = dw[Number(n)].concat(str); //取得该数字对应的大写数字,并插入到str字符串的前面
27 if (n == '0') sum = 0;
28 }
29 if (len - i - 1 >= 0) { //在数字范围内
30 if (k1 != 3) { //加小单位
31 if (bn != 0) {
32 str = dw1[k1].concat(str);
33 }
34 k1++;
35 } else { //不加小单位,加大单位
36 k1 = 0;
37 var temp = str.charAt(0);
38 if (temp == "万" || temp == "亿") //若大单位前没有数字则舍去大单位
39 str = str.substr(1, str.length - 1);
40 str = dw2[k2].concat(str);
41 sum = 0;
42 }
43 }
44 if (k1 == 3) //小单位到千则大单位进一
45 {
46 k2++;
47 }
48 }
49 //转换小数部分
50 var strdig = "";
51 if (dig != "") {
52 var n = dig.charAt(0);
53 if (n != 0) {
54 strdig += dw[Number(n)] + "角"; //加数字
55 }
56 var n = dig.charAt(1);
57 if (n != 0) {
58 strdig += dw[Number(n)] + "分"; //加数字
59 }
60 }
61 str += "元" + strdig;
62 } catch(e) {
63 return "0元";
64 }
65 return str;
66 }
67 //拆分整数与小数
68 function splits(tranvalue) {
69 var value = new Array('', '');
70 temp = tranvalue.split(".");
71 for (var i = 0; i < temp.length; i++) {
72 value[i] = temp[i];
73 }
74 return value;
75 }