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 相关文章推荐
js获得网页背景色和字体色的方法
Mar 21 Javascript
jQuery获取标签文本内容和html内容的方法
Mar 27 Javascript
javascript实现网页背景烟花效果的方法
Aug 06 Javascript
jQuery实现点击小图片淡入淡出显示大图片特效
Sep 09 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
Dec 02 Javascript
JS仿京东移动端手指拨动切换轮播图效果
Apr 10 Javascript
Node.js通过身份证号验证年龄、出生日期与性别方法示例
Mar 09 Javascript
很棒的vue弹窗组件
May 24 Javascript
如何理解Vue的作用域插槽的实现原理
Aug 19 Javascript
element ui 表格动态列显示空白bug 修复方法
Sep 04 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
Sep 27 Javascript
javascript 模块依赖管理的本质深入详解
Apr 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
?繁体转换的class
2006/10/09 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
jquery实现表单输入时提示文字滑动向上效果
2015/08/10 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
vue实现全选、反选功能
2020/11/17 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[01:51]2014DOTA2西雅图邀请赛 MVP 外卡赛black场间采访
2014/07/09 DOTA
[02:54]DOTA2亚洲邀请赛 VG战队出场宣传片
2015/02/07 DOTA
python数据结构之图深度优先和广度优先实例详解
2015/07/08 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python基于win32ui模块创建弹出式菜单示例
2018/05/09 Python
用pycharm开发django项目示例代码
2018/10/24 Python
python微信好友数据分析详解
2018/11/19 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
python连接mongodb集群方法详解
2020/02/13 Python
pyspark对Mysql数据库进行读写的实现
2020/12/30 Python
化学实验员岗位职责
2013/12/28 职场文书
档案接收函范文
2014/01/10 职场文书
生物学学生自我评价
2014/01/17 职场文书
八年级语文教学反思
2014/02/11 职场文书
大学生毕业求职信
2014/06/12 职场文书
关爱留守儿童标语
2014/06/18 职场文书
节电标语大全
2014/06/23 职场文书
毕业酒会致辞
2015/07/29 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
django 认证类配置实现
2021/11/11 Python