您的位置:首页 > Web前端 > JavaScript

JAVASCRIPT 数字转换成中文大写

2008-05-15 16:59 363 查看
在网上找了一段代码做了些改动,效果还不错

function Transform(number)

{

 number=new String(parseFloat(number).toFixed(2));

 //分离整数与小数

 var num;

 var dig;

 if(number.indexOf(".") == -1)

 {

  num = number;

  dig = "";

 }

 else

 {

  num = number.substr(0,number.indexOf("."));

  dig = number.substr( number.indexOf(".")+1, number.length);

 }

 //转换整数部分

 var i=1;

 var len = num.length;

 var dw2 = new Array("","万","亿");//大单位

 var dw1 = new Array("拾","佰","千");//小单位

 var dw = new Array("","壹","贰","叁","肆","伍","陆","柒","捌","玖");//整数部分用

 var dws = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//小数部分用

 var k1=0;//计小单位

 var k2=0;//计大单位

 var str="";

 for(i=1;i<=len;i++)

 {

  var n = num.charAt(len-i);

  if(n=="0")

  {

   if(k1!=0)

    str = str.substr(1,str.length-1);

   

   if(str.substr(0,1)!="零" && str.substr(0,1)!="万" && str.substr(0,1)!="亿")

   {

    str="零"+str;

   }

  }

  

  str = dw[Number(n)].concat(str);//加数字

  

  if(len-i-1>=0)//在数字范围内

  {

   if(k1!=3)//加小单位

   {

    str = dw1[k1].concat(str);

    k1++;

   }

   else//不加小单位,加大单位

   {

    k1=0;

    var temp = str.charAt(0);

    if(temp=="万" || temp=="亿")//若大单位前没有数字则舍去大单位

     str = str.substr( 1, str.length-1);

    str = dw2[k2].concat(str);

   }

  }

  

  if(k1==3)//小单位到千则大单位进一

  {

   k2++;

  }

 }

 if(str.substr(str.length-1,str.length)=="零")

 {

  str=str.substr(0,str.length-1);

 }

 //转换小数部分

 var strdig="";

 if(Number(dig)==0)

 {

  strdig="整";

 }

 else

 {

  for(i=0;i<2;i++)

  {

   var n = dig.charAt(i);

   if(i==0 && Number(n)==0)

   {

    strdig="零"

   }

   else

   {

    strdig += dws[Number(n)]+(i==0 ? "角" : "分");//加数字

   }

  }

 }

 str += "元"+strdig;

 return  str;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript