金额小写转大写

  1.     //小写转换成大写
  2.         function NumToBig(num){         
  3.             if(isNaN(num)){ 
  4.                 alert('请检查小写金额是否正确!'); 
  5.                 return false
  6.             }else{          
  7.                 //保留两位有效数字
  8.                 num = Math.round(num*Math.pow(10,2))/Math.pow(10,2);            
  9.             }
  10.             var NumStr = String(num);
  11.             var NumChar = '零壹贰叁肆伍陆柒捌玖';
  12.             var UnitChar1 = ' 拾佰仟 拾佰仟 拾佰仟 拾佰仟';
  13.             var UnitChar2 = ' 万亿兆'
  14.             var Len; 
  15.             var LeftLen,LeftStr; 
  16.             var RightLen,RightStr; 
  17.             var BigStr = ''
  18.             Len = NumStr.length; 
  19.             //根据小数点分割字符串
  20.             if(NumStr.indexOf('.')==-1){ 
  21.                 LeftStr = NumStr; 
  22.                 LeftLen = Len; 
  23.                 RightStr = ''
  24.                 RightLen = 0; 
  25.             }else
  26.                 LeftStr = (NumStr.split('.'))[0];
  27.                 LeftLen = LeftStr.length; 
  28.                 RightStr = (NumStr.split('.'))[1]; 
  29.                 RightLen = RightStr.length; 
  30.             } 
  31.             
  32.             //转换整数部分
  33.             for(var i=0;i<LeftLen;i++){
  34.             //按位取小写数字
  35.             var LeftTempNum = parseInt(LeftStr.substring(i,i+1));
  36.             //转换成大写
  37.             var LeftTempStr = NumChar.substring(LeftTempNum,LeftTempNum+1);
  38.             //数字位为零且不是一位数
  39.             if(LeftTempStr=="零" && LeftLen!= "1"){
  40.                 //下一位数字为零或者为万(个)位
  41.                 if(LeftStr.substring(i+1,i+2)=='0' || (LeftLen-i)%4==1){
  42.                     LeftTempStr = '';
  43.                 }
  44.             }else{
  45.                 //加上读的单位,拾佰仟之类的
  46.                 LeftTempStr += UnitChar1.substring(LeftLen-i-1,LeftLen-i).replace(' ','');
  47.             }
  48.             //万位或个位
  49.             if((LeftLen-i)%4==1){
  50.                 LeftTempStr += UnitChar2.substring(parseInt((LeftLen-i)/4),parseInt((LeftLen-i)/4)+1);
  51.                 if(i>2){
  52.                     if(LeftStr.substring(i-3,i+1)=='0000'){
  53.                         LeftTempStr = LeftTempStr .substring(0,LeftTempStr.length-1);
  54.                     }
  55.                 }
  56.             }
  57.             BigStr += LeftTempStr.replace(' ','');
  58.          }           
  59.         //处理小数部分
  60.         if(RightLen==0){ 
  61.             BigStr += '元整'
  62.         }else{
  63.             BigStr += '元';
  64.             for(var i=0;i<RightLen;i++){
  65.                 //按位取小写数字
  66.                 var RightTempNum = parseInt(RightStr.substring(i,i+1));
  67.                 //转换成大写
  68.                 var RightTempStr = NumChar.substring(RightTempNum, RightTempNum + 1);
  69.                 if (i==0){
  70.                 RightTempStr += "角";
  71.             }
  72.             if (i==1){
  73.                 RightTempStr+="分";
  74.             }
  75.             BigStr += RightTempStr;
  76.             }
  77.         }
  78.         return BigStr;  
  79.     }   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值