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

叫我灿烂就OK

叫我灿烂就OK

2016-01-29 14:54

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

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

//----------------------FUNCTION BEGIN-----------------------------
//-------------------------------------------
//函数名: num2chi()
//叁  数: 一数字
//返回值: 一字符串
//功  能: 将难读的长串数字转为顺口读出的汉字
//作  者: chen.anson  
//站  点: HTTP://dreamer.oso.com.cn
//-------------------------------------------

function num2chi(result) {

var chiresult = "";            //定义返回值叁数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 = "位";
    else if (tempresult.charAt(resultlen-i)=="零"&&j==1)
        chiresult = "位" + chiresult;
    //--------------------------------

    //避免把"幂"和"点"当做实际位数, 而且单位确认变量重新计数
    else if (tempresult.charAt(resultlen-i)=="幂")
    {
        j=1;k=1;chiresult = tempresult.charAt(resultlen-i) + chiresult;continue;
    }
    else if (tempresult.charAt(resultlen-i)=="点")
    {
  &n
展开更多 50%)
分享

猜你喜欢

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

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

Excel将文本的数字转换数字格式

电脑入门
Excel将文本的数字转换数字格式

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

数字日期转化为汉字日期格式

电脑网络
数字日期转化为汉字日期格式

Excel 2007怎么将文本格式转数字格式

excel
Excel 2007怎么将文本格式转数字格式

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Mac下如何将DOCX格式文件转为DOC格式

电脑入门
Mac下如何将DOCX格式文件转为DOC格式

excel数字格式设置

excel
excel数字格式设置

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

php数据库连接

php数据库连接

使ACCESS数据库保持同步

使ACCESS数据库保持同步
下拉加载更多内容 ↓