将数字格式的计算结果转为汉字格式
2008-02-23 06:24:46来源:互联网 阅读 ()
将下列代码加到你的网页里, 通过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)=="点")
{
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<resultlen) chiresult = "拾" chiresult;
else if (j==2&&i<resultlen) chiresult = "百" chiresult;
else 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;
else 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.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("幂"));
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash