DODONG

博客园 首页 新随笔 联系 订阅 管理
// 数字金额转换汉字金额
 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;            // 指定位置的数值
13  if(len>15){
14   alert("超出计算范围");
15   return "";
16  }

17  if (numberValue==0){
18   
19   chineseValue = "零元整";
20   return chineseValue;
21   
22  }

23  
24  String2 = String2.substr(String2.length-len, len);   // 取出对应位数的STRING2的值
25  
26  for(var i=0; i<len; i++){
27   
28   String3 = parseInt(numberValue.substr(i, 1),10);   // 取出需转换的某一位的值
29   //alert(String3);
30   if ( i != (len - 3&& i != (len - 7&& i != (len - 11&& i !=(len - 15) ){
31    
32    if ( String3 == 0 ){
33     
34     Ch1 = "";
35     Ch2 = "";
36     nZero = nZero + 1;
37     
38    }
else if ( String3 != 0 && nZero != 0 ){
39     
40     Ch1 = "" + String1.substr(String3, 1);
41     Ch2 = String2.substr(i, 1);
42     nZero = 0;
43     
44    }
else{
45     
46     Ch1 = String1.substr(String3, 1);
47     Ch2 = String2.substr(i, 1);
48     nZero = 0;
49    }

50   }
else{              // 该位是万亿,亿,万,元位等关键位
51    if( String3 != 0 && nZero != 0 ){
52     
53     Ch1 = "" + String1.substr(String3, 1);
54     Ch2 = String2.substr(i, 1);
55     nZero = 0;
56     
57    }
else if ( String3 != 0 && nZero == 0 ){
58     
59     Ch1 = String1.substr(String3, 1);
60     Ch2 = String2.substr(i, 1);
61     nZero = 0;
62     
63    }
else if( String3 == 0 && nZero >= 3 ){
64     
65     Ch1 = "";
66     Ch2 = "";
67     nZero = nZero + 1;
68     
69    }
else{
70     
71     Ch1 = "";
72     Ch2 = String2.substr(i, 1);
73     nZero = nZero + 1;
74     
75    }

76    
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  
86  if ( String3 == 0 ){           // 最后一位(分)为0时,加上“整”
87   chineseValue = chineseValue + "";
88  }

89  
90  return chineseValue;
91 }

posted on 2006-02-20 23:50  DODONG  阅读(471)  评论(0编辑  收藏  举报