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 相关文章推荐
解放web程序员的输入验证
Oct 06 Javascript
屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键 的javascript代码
Apr 01 Javascript
prototype Element学习笔记(篇一)
Oct 26 Javascript
jquery 常用操作方法
Jan 28 Javascript
JavaScript实现拼音排序的方法
Nov 20 Javascript
JavaScript利用构造函数和原型的方式模拟C#类的功能
Mar 06 Javascript
js与jquery回车提交的方法
Feb 03 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
vue实现数字动态翻牌的效果(开箱即用)
Dec 08 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
Mar 04 Javascript
Vue获取微博授权URL代码实例
Nov 04 Javascript
javascript实现数字时钟效果
Feb 06 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
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
PHP编程中字符串处理的5个技巧小结
2007/11/13 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
PHP实现通过URL提取根域名
2016/03/31 PHP
setTimeout和setInterval的浏览器兼容性分析
2007/02/27 Javascript
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
基于JavaScript实现继承机制之构造函数+原型链混合方式的使用详解
2013/05/07 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
nodejs中向HTTP响应传送进程的输出
2017/03/19 NodeJs
Vue.js实现移动端短信验证码功能
2017/03/29 Javascript
node文字生成图片的示例代码
2017/10/26 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
Python中subprocess的简单使用示例
2015/07/28 Python
bpython 功能强大的Python shell
2016/02/16 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
python 实现登录网页的操作方法
2018/05/11 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
python文件读写代码实例
2019/10/21 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
管道维修工岗位职责
2013/12/27 职场文书
车队司机自我鉴定
2014/03/02 职场文书
《蚕姑娘》教学反思
2014/04/15 职场文书
群众路线领导对照材料
2014/08/23 职场文书
综治工作汇报材料
2014/10/27 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技