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


Posted in Javascript onAugust 02, 2016

本文实例讲述了JS实现将数字金额转换为大写人民币汉字的方法。分享给大家供大家参考,具体如下:

//代码如下所示:
function convertCurrency(money) {
  //汉字的数字
  var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
  //基本单位
  var cnIntRadice = new Array('', '拾', '佰', '仟');
  //对应整数部分扩展单位
  var cnIntUnits = new Array('', '万', '亿', '兆');
  //对应小数部分单位
  var cnDecUnits = new Array('角', '分', '毫', '厘');
  //整数金额时后面跟的字符
  var cnInteger = '整';
  //整型完以后的单位
  var cnIntLast = '元';
  //最大处理的数字
  var maxNum = 999999999999999.9999;
  //金额整数部分
  var integerNum;
  //金额小数部分
  var decimalNum;
  //输出的中文金额字符串
  var chineseStr = '';
  //分离金额后用的数组,预定义
  var parts;
  if (money == '') { return ''; }
  money = parseFloat(money);
  if (money >= maxNum) {
    //超出最大处理数字
    return '';
  }
  if (money == 0) {
    chineseStr = cnNums[0] + cnIntLast + cnInteger;
    return chineseStr;
  }
  //转换为字符串
  money = money.toString();
  if (money.indexOf('.') == -1) {
    integerNum = money;
    decimalNum = '';
  } else {
    parts = money.split('.');
    integerNum = parts[0];
    decimalNum = parts[1].substr(0, 4);
  }
  //获取整型部分转换
  if (parseInt(integerNum, 10) > 0) {
    var zeroCount = 0;
    var IntLen = integerNum.length;
    for (var i = 0; i < IntLen; i++) {
      var n = integerNum.substr(i, 1);
      var p = IntLen - i - 1;
      var q = p / 4;
      var m = p % 4;
      if (n == '0') {
        zeroCount++;
      } else {
        if (zeroCount > 0) {
          chineseStr += cnNums[0];
        }
        //归零
        zeroCount = 0;
        chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
      }
      if (m == 0 && zeroCount < 4) {
        chineseStr += cnIntUnits[q];
      }
    }
    chineseStr += cnIntLast;
  }
  //小数部分
  if (decimalNum != '') {
    var decLen = decimalNum.length;
    for (var i = 0; i < decLen; i++) {
      var n = decimalNum.substr(i, 1);
      if (n != '0') {
        chineseStr += cnNums[Number(n)] + cnDecUnits[i];
      }
    }
  }
  if (chineseStr == '') {
    chineseStr += cnNums[0] + cnIntLast + cnInteger;
  } else if (decimalNum == '') {
    chineseStr += cnInteger;
  }
  return chineseStr;
}
Javascript 相关文章推荐
JavaScript 高效运行代码分析
Mar 18 Javascript
JavaScript 面向对象之命名空间
May 04 Javascript
javascript学习笔记(九) js对象 设计模式
Jun 19 Javascript
js自动闭合html标签(自动补全html标记)
Oct 04 Javascript
JavaScript格式化日期时间的方法和自定义格式化函数示例
Apr 04 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
Jan 22 Javascript
高效的jquery数字滚动特效
Dec 17 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
Apr 13 Javascript
详解plotly.js 绘图库入门使用教程
Feb 23 Javascript
socket在egg中的使用实例代码详解
May 30 Javascript
新手快速入门微信小程序组件库 iView Weapp
Jun 24 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
Oct 30 Javascript
AngularJS基础 ng-model-options 指令简单示例
Aug 02 #Javascript
jQuery树形控件zTree使用小结
Aug 02 #Javascript
jquery 判断selection range 是否在容器中的简单实例
Aug 02 #Javascript
AngularJS基础 ng-model 指令详解及示例代码
Aug 02 #Javascript
JS获取input file绝对路径的方法(推荐)
Aug 02 #Javascript
JavaScript实现复制文章自动添加版权
Aug 02 #Javascript
js获取上传文件的绝对路径实现方法
Aug 02 #Javascript
You might like
PHP4和PHP5共存于一系统
2006/11/17 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
2011/11/02 PHP
PHP防CC攻击实现代码
2011/12/29 PHP
php中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
PJBlog插件 防刷新的在线播放器
2006/10/25 Javascript
Javascript 中介者模式实例
2009/12/16 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
浅谈javascript中的call、apply、bind
2016/03/06 Javascript
Js查找字符串中出现次数最多的字符及个数实例解析
2016/09/05 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
利用Jasmine对Angular进行单元测试的方法详解
2017/06/12 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
[11:42]2018DOTA2国际邀请赛寻真——OG卷土重来
2018/08/17 DOTA
python实现在无须过多援引的情况下创建字典的方法
2014/09/25 Python
Python中类型关系和继承关系实例详解
2015/05/25 Python
实例Python处理XML文件的方法
2015/08/31 Python
python简单实现刷新智联简历
2016/03/30 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
python-opencv获取二值图像轮廓及中心点坐标的代码
2019/08/27 Python
python turtle 绘制太极图的实例
2019/12/18 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
python dataframe NaN处理方式
2019/12/26 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
马智宇婚礼主持词
2014/03/22 职场文书
小学课外阅读总结
2014/07/09 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
开票员岗位职责
2015/02/12 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
十大经典日本动漫排行榜 海贼王第三,犬夜叉仅第八
2022/03/18 日漫
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs