// 数字金额转换汉字金额
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
2 function atoc(numberValue)
{
3
4 var numberValue=new String(Math.round(numberValue*100)); // 数字金额
5 var chineseValue=""; // 转换后的汉字金额
6 var String1 = "零壹贰叁肆伍陆柒捌玖"; // 汉字数字
7 var String2 = "万仟佰拾亿仟佰拾万仟佰拾元角分"; // 对应单位
8 var len=numberValue.length; // numberValue 的字符串长度
9 var Ch1; // 数字的汉语读法
10 var Ch2; // 数字位的汉字读法
11 var nZero=0; // 用来计算连续的零值的个数
12 var String3; // 指定位置的数值
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
13 if(len>15)
{
14 alert("超出计算范围");
15 return "";
16 }
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
17 if (numberValue==0)
{
18
19 chineseValue = "零元整";
20 return chineseValue;
21
22 }
23
24 String2 = String2.substr(String2.length-len, len); // 取出对应位数的STRING2的值
25
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
26 for(var i=0; i<len; i++)
{
27
28 String3 = parseInt(numberValue.substr(i, 1),10); // 取出需转换的某一位的值
29 //alert(String3);
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
30 if ( i != (len - 3) && i != (len - 7) && i != (len - 11) && i !=(len - 15) )
{
31
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
32 if ( String3 == 0 )
{
33
34 Ch1 = "";
35 Ch2 = "";
36 nZero = nZero + 1;
37
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
38 }else if ( String3 != 0 && nZero != 0 )
{
39
40 Ch1 = "零" + String1.substr(String3, 1);
41 Ch2 = String2.substr(i, 1);
42 nZero = 0;
43
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
44 }else
{
45
46 Ch1 = String1.substr(String3, 1);
47 Ch2 = String2.substr(i, 1);
48 nZero = 0;
49 }
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
50 }else
{ // 该位是万亿,亿,万,元位等关键位
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
51 if( String3 != 0 && nZero != 0 )
{
52
53 Ch1 = "零" + String1.substr(String3, 1);
54 Ch2 = String2.substr(i, 1);
55 nZero = 0;
56
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
57 }else if ( String3 != 0 && nZero == 0 )
{
58
59 Ch1 = String1.substr(String3, 1);
60 Ch2 = String2.substr(i, 1);
61 nZero = 0;
62
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
63 }else if( String3 == 0 && nZero >= 3 )
{
64
65 Ch1 = "";
66 Ch2 = "";
67 nZero = nZero + 1;
68
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
69 }else
{
70
71 Ch1 = "";
72 Ch2 = String2.substr(i, 1);
73 nZero = nZero + 1;
74
75 }
76
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
77 if( i == (len - 11) || i == (len - 3))
{ // 如果该位是亿位或元位,则必须写上
78 Ch2 = String2.substr(i, 1);
79 }
80
81 }
82 chineseValue = chineseValue + Ch1 + Ch2;
83
84 }
85
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
86 if ( String3 == 0 )
{ // 最后一位(分)为0时,加上“整”
87 chineseValue = chineseValue + "整";
88 }
89
90 return chineseValue;
91 }
![](/Images/OutliningIndicators/None.gif)