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编程起步(第二课)
Feb 27 Javascript
jQuery 对Select的操作备忘记录
Jul 04 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
Nov 02 Javascript
JS动态创建元素的两种方法
Apr 20 Javascript
AngularJS控制器controller给模型数据赋初始值的方法
Jan 04 Javascript
angularjs实现的前端分页控件示例
Feb 10 Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 Javascript
javaScript封装的各种写法
Aug 14 Javascript
微信小程序8种数据通信的方式小结
Feb 03 Javascript
小程序接入腾讯位置服务的详细流程
Mar 03 Javascript
浅谈Vue static 静态资源路径 和 style问题
Nov 07 Javascript
详解vue修改elementUI的分页组件视图没更新问题
Nov 13 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
php操作mysql数据库的基本类代码
2014/02/25 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
2016/09/11 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
jquery 问答知识整理
2010/02/11 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
javascript实现随时变化着的背景颜色
2015/04/02 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
AngularJS辅助库browserTrigger用法示例
2016/11/03 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
js实现移动端tab切换时下划线滑动效果
2019/09/08 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
[56:56]VG vs LGD 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
python3生成随机数实例
2014/10/20 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
Python Multiprocessing多进程 使用tqdm显示进度条的实现
2019/08/13 Python
opencv python如何实现图像二值化
2020/02/03 Python
Python tkinter模版代码实例
2020/02/05 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
初中校园广播稿
2014/02/02 职场文书
留学顾问岗位职责
2014/04/14 职场文书
合作协议书模板
2014/10/10 职场文书
2015年度服装销售工作总结
2015/03/31 职场文书
出纳试用期工作总结2015
2015/05/28 职场文书
2016会计专业自荐信范文
2016/01/28 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS