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代码
Mar 01 Javascript
JavaScript和ActionScript的交互实现代码
Aug 01 Javascript
window.parent与window.openner区别介绍
Apr 12 Javascript
简单的js表单验证函数
Oct 28 Javascript
javascript实现滑动解锁功能
Dec 31 Javascript
JS日期加减,日期运算代码
Nov 05 Javascript
jQuery命名空间与闭包用法示例
Jan 12 Javascript
vue中的模态对话框组件实现过程
May 01 Javascript
vue 父组件中调用子组件函数的方法
Jun 06 Javascript
JavaScript动态检测密码强度原理及实现方法详解
Jun 11 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
Oct 31 Javascript
解决vue-router的beforeRouteUpdate不能触发
Apr 14 Vue.js
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 配置文件中open_basedir选项作用
2009/07/19 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
2014/04/01 PHP
详解PHP PDO简单教程
2019/05/28 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
js实现select跳转功能代码
2014/10/22 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
jQuery中Find选择器用法示例
2016/09/21 Javascript
JavaScript中防止微信浏览器被整体拖动的方法
2017/08/25 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
2018/12/11 jQuery
vue中的过滤器实例代码详解
2019/06/06 Javascript
微信小程序使用Vant Weapp组件库的方法步骤
2019/08/01 Javascript
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
2018/04/30 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
python处理document文档保留原样式
2019/09/23 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
Python yield的用法实例分析
2020/03/06 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
实例讲解CSS3中Transform的perspective属性的用法
2016/04/22 HTML / CSS
Lancome兰蔻官方旗舰店:来自法国的世界知名美妆品牌
2018/06/14 全球购物
Hotels.com日本:国外和海外住宿,酒店预订
2019/12/13 全球购物
Genny意大利官网:意大利高级时装品牌
2020/04/15 全球购物
使用索引有什么好处
2016/07/27 面试题
新闻专业个人求职信
2013/12/19 职场文书
部队领导证婚词
2014/01/12 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
家长通知书家长意见
2014/12/30 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫