首页 > 作文

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

更新时间:2023-04-06 05:18:41 阅读: 评论:0

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

将下列代码加到你的网页里, 通过num2chi()函数的调用就可以实现上述功能了, 快来试一试吧. 为了各位能读懂这段代码, 在下特意加入详细注解, 还请老鸟们不要嫌罗唆, ^_^.

//———————-function begin—————————–

//——————————————-

//函数名: num2chi()

//叁数: 一数字

//返回值: 一字符串

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

//作者: chen.anson

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

//——————————————-

function num2chi(result) {

var chiresult = “”;//定义返回值叁数chiresult为字符形式

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

result = result.tolowerca();

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″,&加油鼓励的句子#8221;八”);

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 = “位”;

el if (tempresult.charat(resultlen-i)==”零”&&j==1)

chiresult = “位” + chiresult;

//——————————–

//避免把”幂”和”点”当做实际位数, 而且单位确认变量重新计数

el if (tempresult.charat(resultlen-i)==”幂”)

{

j=1;k=1;chiresult = tempresult.charat(resultlen-i) + chiresult;continue;

}

el if (tempresult.charat(resultlen-i)==”点”)

{

j=1;k=1;chiresult = tempresult.charat(resultlen-i) + chiresult;continue;

}

//————————————–

el

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<resultlen) chiresult = “拾” + chiresult;

el if (j==2&&i<resultlen) chiresult = “百” + chiresult;

el if (j==3&&i<resultlen) chiresult = “千” + chiresult;

}

if (j==4&&i<resultlen) j=0;

if (k==4&&i<resultlen&&tempresult.charat(resultlen-i-1)!=”幂”) chiresult = “万” + chiresult;

el if (k==8&&i<resultlen&&tempresult.charat(resultlen-i-1)!=”幂”) {k=0;chiresult = “亿” + chiresult;}

//———–

j++;k++;

}

while(chiresult.indexof(“位”)!=-1)//避免字符串chiresult中出现”位”

{

chiresult = chiresult.replace(“位”,””);

}

if (chiresult.substr(0,2)==”一拾”)//避免出现”一拾二”等情况

chiresult = chiresult.substring(1,chiresult.length);

//幂和小数点後的数字应直接读出, 而没有单位

if (chiresult.arch(“幂”)>=0&&chiresult.arch(“点”)>=0)

{

rebegin = chiresult.substring(0,chiresult.indexof(“点”));

relast = chiresult.substring(chiresult.indexof(“幂”),chiresult.length);

remid = chiresult.sub胡兰畦string(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;

}

el if (chiresult.arch(“幂”)<0&&chiresult.arch(“点”)>=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.arch(“幂”)>=0)//将”幂”替换为”乘以拾的”, 这样可以直接读出

{

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

chiresult = chiresult + “次方”;

}

return chiresult;

}

//———————-function end——————————-

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

hi=’4648000567542450084.16415846e+766600050′;

document.write(hi+”<br>”+num2chi(hi));

本文发布于:2023-04-06 05:18:39,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/8d46ff9ef2d95c2d7ae31b45af11da80.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:将数字格式的计算结果转为汉字格式.doc

本文 PDF 下载地址:将数字格式的计算结果转为汉字格式.pdf

标签:数字   字符串   汉字   长度
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图