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返回上一页并刷新代码整理
Dec 21 Javascript
JS Replace()的高级使用方法介绍
Jun 29 Javascript
自己用jQuery写了一个图片的马赛克消失效果
May 04 Javascript
jquery 隐藏与显示tr标签示例代码
Jun 06 Javascript
深入分析Cookie的安全性问题
Mar 01 Javascript
js实现拉幕效果的广告代码
Sep 02 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
Oct 27 Javascript
常用的JQuery函数及功能小结
Mar 24 Javascript
ionic隐藏tabs的方法
Aug 29 Javascript
JS实现新建文件夹功能
Jun 17 Javascript
基于原生js运动方式关键点的总结(推荐)
Oct 01 Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 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 翻页 实例代码
2009/08/07 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
php操作redis缓存方法分享
2015/06/03 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
2018/10/14 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
基于PHP+Jquery制作的可编辑的表格的代码
2011/04/10 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
深入讲解AngularJS中的自定义指令的使用
2015/06/18 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
2017/06/13 Javascript
JavaScript页面倒计时功能完整示例
2019/05/15 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
树莓派中python获取GY-85九轴模块信息示例
2013/12/05 Python
Python算法应用实战之队列详解
2017/02/04 Python
信号生成及DFT的python实现方式
2020/02/25 Python
Windows下Anaconda安装、换源与更新的方法
2020/04/17 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
澳大利亚小众服装品牌:Maurie & Eve
2018/03/27 全球购物
传媒专业推荐信范文
2013/11/23 职场文书
大学生村官心得体会范文
2014/01/04 职场文书
表彰先进的通报
2014/01/31 职场文书
党员承诺书范文
2014/05/19 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
1000字打架检讨书
2014/11/03 职场文书
面试通知邮件
2015/04/20 职场文书
教师聘用意向书
2015/05/11 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
配置Kubernetes外网访问集群
2022/03/31 Servers