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 相关文章推荐
jQuery控制输入框只能输入数值的小例子
Mar 20 Javascript
Extjs4中Form的使用之本地hiddenfield
Nov 26 Javascript
javascript使用switch case实现动态改变超级链接文字及地址
Dec 16 Javascript
使用jQuery管理选择结果
Jan 20 Javascript
学习javascript面向对象 javascript实现继承的方式
Jan 04 Javascript
JS组件系列之Bootstrap Icon图标选择组件
Jan 28 Javascript
jquery删除数组中重复元素
Dec 05 Javascript
vue 指定组件缓存实例详解
Apr 01 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 Javascript
浅谈微信页面入口文件被缓存解决方案
Sep 29 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
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
PHP数组 为文章加关键字连接 文章内容自动加链接
2011/12/29 PHP
php实现图片添加水印功能
2014/02/13 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
ThinkPHP5.0框架实现切换数据库的方法分析
2019/10/30 PHP
javascript 框架小结 个人工作经验
2009/06/13 Javascript
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
js中reverse函数的用法详解
2013/12/26 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
聊一聊JavaScript作用域和作用域链
2016/05/03 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
详解ES6中的let命令
2020/04/05 Javascript
bootstrap3-dialog-master模态框使用详解
2017/08/22 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
JsChart组件使用详解
2018/03/04 Javascript
vue slots 组件的组合/分发实例
2018/09/06 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
2019/06/18 jQuery
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
python3+PyQt5+Qt Designer实现堆叠窗口部件
2018/04/20 Python
浅谈tensorflow1.0 池化层(pooling)和全连接层(dense)
2018/04/27 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
ghd澳大利亚官方网站:英国最受欢迎的美发工具品牌
2018/05/21 全球购物
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
大学老师推荐信
2014/02/25 职场文书
政法学院毕业生求职信
2014/02/28 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
2014年医生工作总结
2014/11/21 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
Django+Nginx+uWSGI 定时任务的实现方法
2022/01/22 Python