数字金额转换汉字金额

[入库:2005年8月18日] [更新:2007年3月25日]

本文简介:选择自 hackergoogle 的 blog

 // 数字金额转换汉字金额
 function atoc(numbervalue){
  
  var numbervalue=new string(math.round(numbervalue*100)); // 数字金额
  var chinesevalue="";          // 转换后的汉字金额
  var string1 = "零壹贰叁肆伍陆柒捌玖";       // 汉字数字
  var string2 = "万仟佰拾亿仟佰拾万仟佰拾元角分";     // 对应单位
  var len=numbervalue.length;         // numbervalue 的字符串长度
  var ch1;             // 数字的汉语读法
  var ch2;             // 数字位的汉字读法
  var nzero=0;            // 用来计算连续的零值的个数
  var string3;            // 指定位置的数值
  if(len>15){
   alert("超出计算范围");
   return "";
  }
  if (numbervalue==0){
   
   chinesevalue = "零元整";
   return chinesevalue;
   
  }
  
  string2 = string2.substr(string2.length-len, len);   // 取出对应位数的string2的值
  
  for(var i=0; i<len; i++){
   
   string3 = parseint(numbervalue.substr(i, 1),10);   // 取出需转换的某一位的值
   //alert(string3);
   if ( i != (len - 3) && i != (len - 7) && i != (len - 11) && i !=(len - 15) ){
    
    if ( string3 == 0 ){
     
     ch1 = "";
     ch2 = "";
     nzero = nzero + 1;
     
    }else if ( string3 != 0 && nzero != 0 ){
     
     ch1 = "零" + string1.substr(string3, 1);
     ch2 = string2.substr(i, 1);
     nzero = 0;
     
    }else{
     
     ch1 = string1.substr(string3, 1);
     ch2 = string2.substr(i, 1);
     nzero = 0;
    }
   }else{              // 该位是万亿,亿,万,元位等关键位
    if( string3 != 0 && nzero != 0 ){
     
     ch1 = "零" + string1.substr(string3, 1);
     ch2 = string2.substr(i, 1);
     nzero = 0;
     
    }else if ( string3 != 0 && nzero == 0 ){
     
     ch1 = string1.substr(string3, 1);
     ch2 = string2.substr(i, 1);
     nzero = 0;
     
    }else if( string3 == 0 && nzero >= 3 ){
     
     ch1 = "";
     ch2 = "";
     nzero = nzero + 1;
     
    }else{
     
     ch1 = "";
     ch2 = string2.substr(i, 1);
     nzero = nzero + 1;
     
    }
    
    if( i == (len - 11) || i == (len - 3)) {    // 如果该位是亿位或元位,则必须写上
     ch2 = string2.substr(i, 1);
    }
    
   }
   chinesevalue = chinesevalue + ch1 + ch2;
   
  }
  
  if ( string3 == 0 ){           // 最后一位(分)为0时,加上“整”
   chinesevalue = chinesevalue + "整";
  }
  
  return chinesevalue;
 }

本文关键:atoc
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top