现在的位置: 首页 > 编程语言 > 正文

怎样将数字格式的计算结果转为汉字格式

2020年05月28日 编程语言 ⁄ 共 966字 ⁄ 字号 评论关闭

  有没有想过将数字格式的计算结果转化为汉字格式的?有人会问"干嘛要转,数字形式不是蛮好嘛",可是当这个数字很长的时候就不太容易读出来了吧,就算是有千分位的分隔符也不易顺口说出,因为这个符号是位英语行方便的,不是适合我们的读法.那就自己写一个函数来完成这项任务吧.下面学步园小编来讲解下怎样将数字格式的计算结果转为汉字格式?

  怎样将数字格式的计算结果转为汉字格式

  //----------------------FUNCTIONBEGIN-----------------------------

  //-------------------------------------------

  //函数名:num2chi()

  //叁数:一数字

  //返回值:一字符串

  //功能:将难读的长串数字转为顺口读出的汉字

  //作者:chen.anson

  //站点:HTTP://dreamer.oso.com.cn

  //-------------------------------------------

  functionnum2chi(result){

  varchiresult="";//定义返回值叁数chiresult为字符形式

  result=result.toString();//将result转为字符形式

  result=result.toLowerCase();

  resultlen=result.length;//定义resultlen为result的长度

  tempresult=result;//定义中间变量tempresult

  for(i=1;i<=resultlen;i++)//将字符串tempresult中的全部数字替换为汉字   {   tempresult=tempresult.replace("1","一");   tempresult=tempresult.replace("2","二");   tempresult=tempresult.replace("3","三");   tempresult=tempresult.replace("4","四");   tempresult=tempresult.replace("5","五");   tempresult=tempresult.replace("6","六");   tempresult=tempresult.replace("7","七");   tempresult=tempresult.replace("8","八");   tempresult=tempresult.replace("9","九");   tempresult=tempresult.replace("0","零");   tempresult=tempresult.replace(".","点");   tempresult=tempresult.replace("e+","幂");   }   while(tempresult.indexOf("零零")!=-1)//避免字符串tempresult中出现"零零",但又不能改变字符串长度   {   tempresult=tempresult.replace("零零","位零");   }   resultlen=tempresult.length;//再次确认tempresult的长度,因"e+"->"幂"会引起长度变化

  for(i=1,j=1,k=1;i<=resultlen;i++)//开始转换,i为位数确认叁数,j为"十百千"确认叁数,k为"万亿"确认叁数   {   //防止尾数为零,如八拾零,二拾零万   if(tempresult.charAt(resultlen-1)=="零"&&i==1)   chiresult="位";   elseif(tempresult.charAt(resultlen-i)=="零"&&j==1)   chiresult="位"+chiresult;   //--------------------------------   //避免把"幂"和"点"当做实际位数,而且单位确认变量重新计数   elseif(tempresult.charAt(resultlen-i)=="幂")   {   j=1;k=1;chiresult=tempresult.charAt(resultlen-i)+chiresult;continue;   }   elseif(tempresult.charAt(resultlen-i)=="点")   {   j=1;k=1;chiresult=tempresult.charAt(resultlen-i)+chiresult;continue;   }   //--------------------------------------   else   chiresult=tempresult.charAt(resultlen-i)+chiresult;   //添加数字单位   if(tempresult.charAt(resultlen-i-1)!="位"&&tempresult.charAt(resultlen-i-1)!="零"&&tempresult.charAt(resultlen-i-1)!="幂")   {   if(j==1&&i   elseif(j==2&&i   elseif(j==3&&i   }   if(j==4&&i   if(k==4&&i   elseif(k==8&&i   //-----------   j++;k++;   }   while(chiresult.indexOf("位")!=-1)//避免字符串chiresult中出现"位"   {   chiresult=chiresult.replace("位","");   }   if(chiresult.substr(0,2)=="一拾")//避免出现"一拾二"等情况   chiresult=chiresult.substring(1,chiresult.length);   //幂和小数点後的数字应直接读出,而没有单位   if(chiresult.search("幂")>=0&&chiresult.search("点")>=0)

  {

  rebegin=chiresult.substring(0,chiresult.indexOf("点"));

  relast=chiresult.substring(chiresult.indexOf("幂"),chiresult.length);

  remid=chiresult.substring(chiresult.indexOf("点"),chiresult.indexOf("幂"));

  for(i=1;i<=remid.length;i++)   {   remid=remid.replace("拾","");   remid=remid.replace("百","");   remid=remid.replace("千","");   remid=remid.replace("万","");   remid=remid.replace("亿","");   }   chiresult=rebegin+remid+relast;   }   elseif(chiresult.search("幂")<0&&chiresult.search("点")>=0)

  {

  rebegin=chiresult.substring(0,chiresult.indexOf("点"));

  relast=chiresult.substring(chiresult.indexOf("点"),chiresult.length);

  for(i=1;i<=relast.length;i++)   {   relast=relast.replace("拾","");   relast=relast.replace("百","");   relast=relast.replace("千","");   relast=relast.replace("万","");   relast=relast.replace("亿","");   }   chiresult=rebegin+relast;   }   if(chiresult.search("幂")>=0)//将"幂"替换为"乘以拾的",这样可以直接读出

  {

  chiresult=chiresult.replace("幂","乘以拾的");

  chiresult=chiresult+"次方";

  }

  returnchiresult;

  }

  怎样将数字格式的计算结果转为汉字格式

  //----------------------FUNCTIONEND-------------------------------

  将下面这两条语句放到script块中试运行一下看看结果对不对,另外可以访问我的主页http://dreamer.oso.com.cn在休闲广场里有一个彩票页面,就是用这段代码实现的,欢迎光临.

  hi='4648000567542450084.16415846E+766600050';

  document.write(hi+"
"+num2chi(hi));

  以上就是关于“怎样将数字格式的计算结果转为汉字格式”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.