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 事件冒泡的介绍以及如何阻止事件冒泡
Dec 25 Javascript
热点新闻滚动特效的js代码
Aug 17 Javascript
js实现图片漂浮效果的方法
Mar 02 Javascript
Vue方法与事件处理器详解
Dec 01 Javascript
详解JavaScript中this的指向问题
Jan 20 Javascript
JS仿Base.js实现的继承示例
Apr 07 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
Apr 10 Javascript
深入理解vue中的$set
Jun 01 Javascript
javascript 作用于作用域链的详解
Sep 27 Javascript
JS实现的简单表单验证功能示例
Oct 13 Javascript
基于vue手写tree插件的那点事儿
Aug 20 Javascript
使用Vue实现简单计算器
Feb 25 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
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
JavaScript弹簧振子超简洁版 完全符合能量守恒,胡克定理
2009/10/25 Javascript
json-lib出现There is a cycle in the hierarchy解决办法
2010/02/24 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
js加入收藏以及使用Jquery更改透明度
2014/01/26 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
Vue使用Clipboard.JS在h5页面中复制内容实例详解
2019/09/03 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
JavaScript实现HTML导航栏下拉菜单
2020/11/25 Javascript
Python实现简单的四则运算计算器
2016/11/02 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
Python使用matplotlib绘制三维图形示例
2018/08/25 Python
python调用百度语音REST API
2018/08/30 Python
pandas通过索引进行排序的示例
2018/11/16 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
django 信号调度机制详解
2019/07/19 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
纯css3实现走马灯效果
2014/12/26 HTML / CSS
美国在线眼镜店:GlassesShop
2018/11/15 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
互联网创业计划书写作技巧攻略
2014/03/23 职场文书
新年晚会主持词
2014/03/24 职场文书
2014年文学毕业生自我鉴定
2014/04/23 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
旅行社计调工作总结
2015/08/12 职场文书
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
苹果M1芯片安装nginx 并且部署vue项目步骤详解
2021/11/20 Servers