1
function NumToBig(num)
2 {
3 if (isNaN(num))
4 {
5 alert( ' 请检查小写金额是否正确! ' );
6 return ;
7 }
8 else
9 {
10 // 保留两位有效数字
11 num = Math.round(num * Math.pow( 10 , 2 )) / Math.pow( 10 , 2 );
12 }
13 var NumStr = String(num);
14 var NumChar = ' 零壹贰叁肆伍陆柒捌玖 ' ;
15 var UnitChar1 = ' 拾佰仟 拾佰仟 拾佰仟 拾佰仟 ' ;
16 var UnitChar2 = ' 万亿兆 ' ;
17 var Len;
18 var LeftLen,LeftStr;
19 var RightLen,RightStr;
20 var BigStr = '' ;
21 Len = NumStr.length;
22 // 根据小数点分割字符串
23 if (NumStr.indexOf( ' . ' ) ==- 1 ) // 没有小数
24 {
25 LeftStr = NumStr;
26 LeftLen = Len;
27 RightStr = '' ;
28 RightLen = 0 ;
29 }
30 else
31 {
32 LeftStr = (NumStr.split( ' . ' ))[ 0 ];
33 LeftLen = LeftStr.length;
34 RightStr = (NumStr.split( ' . ' ))[ 1 ];
35 RightLen = RightStr.length;
36 }
37 // 转换整数部分
38 for (var i = 0 ;i < LeftLen;i ++ )
39 {
40 // 按位取小写数字
41 var LeftTempNum = parseInt(LeftStr.substring(i,i + 1 ));
42 // 转换成大写
43 var LeftTempStr = NumChar.substring(LeftTempNum,LeftTempNum + 1 );
44 // 数字位为零且不是一位数
45 if (TempStr == ' 零 ' && LeftLen != 1 )
46 {
47 // 下一位数字为零或者为万(个)位
48 if (LeftStr.substring(i + 1 ,i + 2 ) == ' 0 ' || (LeftLen - i) % 4 == 1 )
49 {
50 LeftTempStr = '' ;
51 }
52 }
53 else
54 {
55 // 加上读的单位,拾佰仟之类的
56 LeftTempStr += UnitChar1.substring(LeftLen - i - 1 ,LeftLen - i).replace( ' ' , '' );
57 }
58 // 万位或个位
59 if ((LeftLen - i) % 4 == 1 )
60 {
61 LeftTempStr += UnitChar2.substring(parseInt((LeftLen - i) / 4 ),parseInt((LeftLen - i) / 4 ) + 1 );
62 if (i > 2 )
63 {
64 if (LeftStr.substring(i - 3 ,i + 1 ) == ' 0000 ' )
65 {
66 LeftTempStr = TempStr.substring( 0 ,LeftTempStr.length - 1 );
67 }
68 }
69 }
70 BigStr += LeftTempStr.replace( ' ' , '' );
71 }
72 // 处理小数部分
73 if (RightLen == 0 )
74 {
75 BigStr += ' 元整 ' ;
76 }
77 else
78 {
79 BigStr += ' 元 ' ;
80 for (var i = 0 ;i < RightLen;i ++ )
81 {
82 // 按位取小写数字
83 var RightTempNum = parseInt(RightStr.substring(i,i + 1 ));
84 // 转换成大写
85 var RightTempStr = NumChar.substring(RightTempNum,RightTempNum + 1 );
86 if (i == 0 )
87 {
88 RightTempStr += " 角 " ;
89 }
90 if (i == 1 )
91 {
92 RightTempStr += " 分 " ;
93 }
94 BigStr += RightTempStr;
95 }
96 }
97 return BigStr;
98 }
2 {
3 if (isNaN(num))
4 {
5 alert( ' 请检查小写金额是否正确! ' );
6 return ;
7 }
8 else
9 {
10 // 保留两位有效数字
11 num = Math.round(num * Math.pow( 10 , 2 )) / Math.pow( 10 , 2 );
12 }
13 var NumStr = String(num);
14 var NumChar = ' 零壹贰叁肆伍陆柒捌玖 ' ;
15 var UnitChar1 = ' 拾佰仟 拾佰仟 拾佰仟 拾佰仟 ' ;
16 var UnitChar2 = ' 万亿兆 ' ;
17 var Len;
18 var LeftLen,LeftStr;
19 var RightLen,RightStr;
20 var BigStr = '' ;
21 Len = NumStr.length;
22 // 根据小数点分割字符串
23 if (NumStr.indexOf( ' . ' ) ==- 1 ) // 没有小数
24 {
25 LeftStr = NumStr;
26 LeftLen = Len;
27 RightStr = '' ;
28 RightLen = 0 ;
29 }
30 else
31 {
32 LeftStr = (NumStr.split( ' . ' ))[ 0 ];
33 LeftLen = LeftStr.length;
34 RightStr = (NumStr.split( ' . ' ))[ 1 ];
35 RightLen = RightStr.length;
36 }
37 // 转换整数部分
38 for (var i = 0 ;i < LeftLen;i ++ )
39 {
40 // 按位取小写数字
41 var LeftTempNum = parseInt(LeftStr.substring(i,i + 1 ));
42 // 转换成大写
43 var LeftTempStr = NumChar.substring(LeftTempNum,LeftTempNum + 1 );
44 // 数字位为零且不是一位数
45 if (TempStr == ' 零 ' && LeftLen != 1 )
46 {
47 // 下一位数字为零或者为万(个)位
48 if (LeftStr.substring(i + 1 ,i + 2 ) == ' 0 ' || (LeftLen - i) % 4 == 1 )
49 {
50 LeftTempStr = '' ;
51 }
52 }
53 else
54 {
55 // 加上读的单位,拾佰仟之类的
56 LeftTempStr += UnitChar1.substring(LeftLen - i - 1 ,LeftLen - i).replace( ' ' , '' );
57 }
58 // 万位或个位
59 if ((LeftLen - i) % 4 == 1 )
60 {
61 LeftTempStr += UnitChar2.substring(parseInt((LeftLen - i) / 4 ),parseInt((LeftLen - i) / 4 ) + 1 );
62 if (i > 2 )
63 {
64 if (LeftStr.substring(i - 3 ,i + 1 ) == ' 0000 ' )
65 {
66 LeftTempStr = TempStr.substring( 0 ,LeftTempStr.length - 1 );
67 }
68 }
69 }
70 BigStr += LeftTempStr.replace( ' ' , '' );
71 }
72 // 处理小数部分
73 if (RightLen == 0 )
74 {
75 BigStr += ' 元整 ' ;
76 }
77 else
78 {
79 BigStr += ' 元 ' ;
80 for (var i = 0 ;i < RightLen;i ++ )
81 {
82 // 按位取小写数字
83 var RightTempNum = parseInt(RightStr.substring(i,i + 1 ));
84 // 转换成大写
85 var RightTempStr = NumChar.substring(RightTempNum,RightTempNum + 1 );
86 if (i == 0 )
87 {
88 RightTempStr += " 角 " ;
89 }
90 if (i == 1 )
91 {
92 RightTempStr += " 分 " ;
93 }
94 BigStr += RightTempStr;
95 }
96 }
97 return BigStr;
98 }