当前位置: 首页 > 图文教程 > 网络编程 > Javascript > 将金额小写转化成汉字大写

Javascript
JS 参数传递的实际应用代码分析
prototype与jquery下Ajax实现的差别
用JS写的简单的计算器实现代码
javascript 数组操作实用技巧
JavaScript 中级笔记 第二章
JavaScript 中级笔记 第三章
JavaScript 中级笔记 第四章 闭包
JavaScript 中级笔记 第五章 面向对象的基础
Mootools 1.2教程 函数
Mootools 1.2教程 事件处理
通过Mootools 1.2来操纵HTML DOM元素
Mootools 1.2教程 设置和获取样式表属性
Mootools 1.2教程 输入过滤第一部分(数字)
Mootools 1.2教程 输入过滤第二部分(字符串)
Mootools 1.2教程 Fx.Tween的使用
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
MooTools 1.2中的Drag.Move来实现拖放
Mootools 1.2教程 正则表达式
Mootools 1.2教程 定时器和哈希简介
Mootools 1.2教程 滚动条(Slider)

Javascript 中的 将金额小写转化成汉字大写


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-10   浏览: 204 ::
收藏到网摘: n/a

自己写的一个比较丑的程序,但做报表时候有用
/********************************************************************
时间:2003.7.31
作者:千里猪
功能:将货币数字(阿拉伯数字)(小写)转化成中文(大写)
 
参数:Num为字符型,小数点之后保留两位,例:Arabia_to_Chinese("1234.06")
说明:1.目前本转换仅支持到 拾亿(元) 位,金额单位为元,不能为万元,最小单位为分
   2.不支持负数
修改区

时间:
修改人:
原因:

修改区结束
********************************************************************/
function Arabia_to_Chinese(Num){
 for(i=Num.length-1;i>=0;i--)
 {
  Num = Num.replace(",","")//替换tomoney()中的“,”
  Num = Num.replace(" ","")//替换tomoney()中的空格
 }
 Num = Num.replace("¥","")//替换掉可能出现的¥字符
 if(isNaN(Num)) { //验证输入的字符是否为数字
  alert("请检查小写金额是否正确");
  return;
 }
 //---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
 part = String(Num).split(".");
 newchar = "";
 //小数点前进行转化
 for(i=part[0].length-1;i>=0;i--){
 if(part[0].length > 10){ alert("位数过大,无法计算");return "";}//若数量超过拾亿单位,提示
  tmpnewchar = ""
  perchar = part[0].charAt(i);
  switch(perchar){
    case "0": tmpnewchar="零" + tmpnewchar ;break;
    case "1": tmpnewchar="壹" + tmpnewchar ;break;
    case "2": tmpnewchar="贰" + tmpnewchar ;break;
    case "3": tmpnewchar="叁" + tmpnewchar ;break;
    case "4": tmpnewchar="肆" + tmpnewchar ;break;
    case "5": tmpnewchar="伍" + tmpnewchar ;break;
    case "6": tmpnewchar="陆" + tmpnewchar ;break;
    case "7": tmpnewchar="柒" + tmpnewchar ;break;
    case "8": tmpnewchar="捌" + tmpnewchar ;break;
    case "9": tmpnewchar="玖" + tmpnewchar ;break;
  }
  switch(part[0].length-i-1){
    case 0: tmpnewchar = tmpnewchar +"元" ;break;
    case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
    case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
    case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
    case 4: tmpnewchar= tmpnewchar +"万" ;break;
    case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
    case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
    case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
    case 8: tmpnewchar= tmpnewchar +"亿" ;break;
    case 9: tmpnewchar= tmpnewchar +"拾" ;break;
  }
  newchar = tmpnewchar + newchar;
 }
 //小数点之后进行转化
 if(Num.indexOf(".")!=-1){
 if(part[1].length > 2) {
  alert("小数点之后只能保留两位,系统将自动截段");
  part[1] = part[1].substr(0,2)
  }
 for(i=0;i<part[1].length;i++){
  tmpnewchar = ""
  perchar = part[1].charAt(i)
  switch(perchar){
    case "0": tmpnewchar="零" + tmpnewchar ;break;
    case "1": tmpnewchar="壹" + tmpnewchar ;break;
    case "2": tmpnewchar="贰" + tmpnewchar ;break;
    case "3": tmpnewchar="叁" + tmpnewchar ;break;
    case "4": tmpnewchar="肆" + tmpnewchar ;break;
    case "5": tmpnewchar="伍" + tmpnewchar ;break;
    case "6": tmpnewchar="陆" + tmpnewchar ;break;
    case "7": tmpnewchar="柒" + tmpnewchar ;break;
    case "8": tmpnewchar="捌" + tmpnewchar ;break;
    case "9": tmpnewchar="玖" + tmpnewchar ;break;
  }
  if(i==0)tmpnewchar =tmpnewchar + "角";
  if(i==1)tmpnewchar = tmpnewchar + "分";
  newchar = newchar + tmpnewchar;
 }
 }
 //替换所有无用汉字
 while(newchar.search("零零") != -1)
  newchar = newchar.replace("零零", "零");
 newchar = newchar.replace("零亿", "亿");
 newchar = newchar.replace("亿万", "亿");
 newchar = newchar.replace("零万", "万");
 newchar = newchar.replace("零元", "元");
 newchar = newchar.replace("零角", "");
 newchar = newchar.replace("零分", "");

 if (newchar.charAt(newchar.length-1) == "元" || newchar.charAt(newchar.length-1) == "角")
  newchar = newchar+"整"
 return newchar;
}