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 HTML中的table
Apr 15 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
jquery插件validate验证的小例子
May 08 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
Jan 10 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
Feb 27 Javascript
JS基于正则表达式的替换操作(replace)用法示例
Apr 28 Javascript
JS生成随机打乱数组的方法示例
Dec 23 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
Jun 24 Javascript
深入Vue-Router路由嵌套理解
Aug 13 Javascript
prettier自动格式化去换行的实现代码
Aug 25 Javascript
JS实现简易图片自动轮播
Oct 16 Javascript
js中复选框的取值及赋值示例详解
Oct 18 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中使用mktime获取时间戳的一个黑色幽默分析
2012/05/31 PHP
php生成扇形比例图实例
2013/11/06 PHP
PHP独立Session数据库存储操作类分享
2014/06/11 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
学习php设计模式 php实现单例模式(singleton)
2015/12/07 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
CSS常用网站布局实例
2008/04/03 Javascript
JSON 客户端和服务器端的格式转换
2009/08/27 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
子页向父页传值示例
2013/11/27 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
[01:04]DOTA2:伟大的Roshan雕塑震撼来临
2015/01/30 DOTA
在Python中使用异步Socket编程性能测试
2014/06/25 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
用python结合jieba和wordcloud实现词云效果
2017/09/05 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
迪拜航空官方网站:flydubai
2017/04/20 全球购物
意大利咖啡、浓缩咖啡和浓缩咖啡机:illy caffe
2019/03/20 全球购物
世界汽车零件:World Car Parts
2019/09/04 全球购物
入党申请书自我鉴定
2013/10/12 职场文书
审核会计岗位职责
2013/11/08 职场文书
大学生个人自我鉴定
2013/12/03 职场文书
商品陈列协议书
2014/09/29 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
Python序列化与反序列化相关知识总结
2021/06/08 Python