`

javascript中数字金额转化为大写金额

js 
阅读更多
具体代码:
alert(cmycurd(10050));

function cmycurd(num){  //转成人民币大写金额形式
  var str1 = '零壹贰叁肆伍陆柒捌玖';  //0-9所对应的汉字
  var str2 = '万仟佰拾亿仟佰拾万仟佰拾元角分'; //数字位所对应的汉字
  var str3;    //从原num值中取出的值
  var str4;    //数字的字符串形式
  var str5 = '';  //人民币大写金额形式
  var i;    //循环变量
  var j;    //num的值乘以100的字符串长度
  var ch1;    //数字的汉语读法
  var ch2;    //数字位的汉字读法
  var nzero = 0;  //用来计算连续的零值是几个

  num = Math.abs(num).toFixed(2);  //将num取绝对值并四舍五入取2位小数
  str4 = (num * 100).toFixed(0).toString();  //将num乘100并转换成字符串形式
  j = str4.length;      //找出最高位
  if (j > 15){return '溢出';}
  str2 = str2.substr(15-j);    //取出对应位数的str2的值。如:200.55,j为5所以str2=佰拾元角分

  //循环取出每一位需要转换的值
  for(i=0;i<j;i++){
    str3 = str4.substr(i,1);   //取出需转换的某一位的值
    if (i != (j-3) && i != (j-7) && i != (j-11) && i != (j-15)){    //当所取位数不为元、万、亿、万亿上的数字时
   if (str3 == '0'){
     ch1 = '';
     ch2 = '';
  nzero = nzero + 1;
   }
   else{
     if(str3 != '0' && nzero != 0){
       ch1 = '零' + str1.substr(str3*1,1);
          ch2 = str2.substr(i,1);
          nzero = 0;
  }
  else{
    ch1 = str1.substr(str3*1,1);
          ch2 = str2.substr(i,1);
          nzero = 0;
        }
   }
}
else{ //该位是万亿,亿,万,元位等关键位
      if (str3 != '0' && nzero != 0){
        ch1 = "零" + str1.substr(str3*1,1);
        ch2 = str2.substr(i,1);
        nzero = 0;
      }
      else{
     if (str3 != '0' && nzero == 0){
          ch1 = str1.substr(str3*1,1);
          ch2 = str2.substr(i,1);
          nzero = 0;
  }
        else{
    if (str3 == '0' && nzero >= 3){
            ch1 = '';
            ch2 = '';
            nzero = nzero + 1;
       }
       else{
      if (j >= 11){
              ch1 = '';
              nzero = nzero + 1;
   }
   else{
     ch1 = '';
     ch2 = str2.substr(i,1);
     nzero = nzero + 1;
   }
          }
  }
   }
}
    if (i == (j-11) || i == (j-3)){  //如果该位是亿位或元位,则必须写上
        ch2 = str2.substr(i,1);
    }
    str5 = str5 + ch1 + ch2;
  
    if (i == j-1 && str3 == '0' ){   //最后一位(分)为0时,加上“整”
      str5 = str5 + '整';
    }
  }
  if (num == 0){
    str5 = '零元整';
  }
  return str5;
}
分享到:
评论

相关推荐

    javascript数字金额转换为中文大写金额

    JavaScript无限位小写金额转换中文大写

    《JavaScript无限位小写金额转换大写金额》说明:1.本程序用JavaScript语言编写。转换方法严格遵照中国人民银行规定的银行支票中关于中文大写填写规范的相关规定(见下面附文),两可之处按简便方法处理。2.输入小写...

    javascript将数字转换整数金额大写的方法.docx

    javascript将数字转换整数金额大写的方法.docx

    JavaScript 动态将数字金额转化为中文大写金额

    JavaScript 将数字金额转化为中文大写金额的函数

    js实现将小写金额转化为大写金额

    此代码详细描述了如何将小写金额转化为大写金额,也可用作小写数字转化为读作,语言为JavaScript

    javascript将数字转换整数金额大写的方法

    主要介绍了javascript将数字转换整数金额大写的方法,通过自定义函数中的数组替换实现数字转换整数金额大写的功能,非常具有实用价值,需要的朋友可以参考下

    JS实现将数字金额转换为大写人民币汉字的方法

    主要介绍了JS实现将数字金额转换为大写人民币汉字的方法,涉及javascript字符串与数组操作的相关技巧,需要的朋友可以参考下

    将数字转成英文的js代码

    将数字翻译成英语的JavaScript,可以自动判断出你输入的数字是多大,它会自动拼合,按亿、千万、百万的语法翻译出来,挺实用。

    金额大写js.txt

    该文件内容用于在前端javascript写入方法,然后调用方法将所需要的纯阿拉伯数字金额转化为汉字的数字,如0,1,2,3,4,5,6,7,8,,9转为"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖

    100个直接可以拿来用的JavaScript实用功能代码片段(1-10)

    89、原生JavaScript实现金额大写转换函数 90、原生JavaScript常用的正则表达式大收集 91、原生JavaScript实现窗体改变事件resize的操作(兼容所以的浏览器) 92、原生JavaScript用正则清除空格分左右 93、原生...

    程序天下:JavaScript实例自学手册

    14.20 小写金额转换为大写 14.21 通过两点坐标计算直线距离 14.22 随机抽取彩票 14.23 实时计算折扣 14.24 实用计算器 14.25 前面补0的方法 第15章 图形、图像的特效 15.1 图片变形效果 15.2 图像的翻转效果 15.3 ...

    《程序天下:JavaScript实例自学手册》光盘源码

    14.20 小写金额转换为大写 14.21 通过两点坐标计算直线距离 14.22 随机抽取彩票 14.23 实时计算折扣 14.24 实用计算器 14.25 前面补0的方法 第15章 图形、图像的特效 15.1 图片变形效果 15.2 图像的翻转效果 15.3 ...

    JavaScript网页特效范例宝典源码

    实例097 小写金额转换为大写金额 152 实例098 去除字符串中的空格 155 实例099 转换输入文本中的回车和空格 156 实例100 将数字字符串格式化为指定长度 158 实例101 把一个长数字分位显示 159 实例102 将RGB格式的...

    javascript入门笔记

    特点 :将 a 和 b 转换为 二进制,按位比较,对应位置的数字,至少有一位为1的话,那么该为的整体结果就为1,否则为 0 ex : 5 | 3 101 011 ======== 111 结果为 :7 适用场合:任何小数与0 做 按位或的操作...

    前端js-jshelper帮助类(全面)

    编码/解码、阻止事件冒泡、阻止默认行为、localStorage对象方法、复制到粘贴板、将数字转换成人民币大写的方法、得到合理的金额数字、格式化金额(自定义分隔符)、画线等等各种方法,可以随意调用!(需要依赖jquery...

Global site tag (gtag.js) - Google Analytics