js金额转大写数字

//金额转大写数字
const intToChinese = money => {
  //汉字的数字
  let cnNums = new Array(‘零‘, ‘壹‘, ‘贰‘, ‘叁‘, ‘肆‘, ‘伍‘, ‘陆‘, ‘柒‘, ‘捌‘, ‘玖‘);
  //基本单位
  let cnIntRadice = new Array(‘‘, ‘拾‘, ‘佰‘, ‘仟‘);
  //对应整数部分扩展单位
  let cnIntUnits = new Array(‘‘, ‘万‘, ‘亿‘, ‘兆‘);
  //对应小数部分单位
  let cnDecUnits = new Array(‘角‘, ‘分‘, ‘毫‘, ‘厘‘);
  //整数金额时后面跟的字符
  let cnInteger = ‘整‘;
  //整型完以后的单位
  let cnIntLast = ‘元‘;
  //最大处理的数字
  let maxNum = 999999999999999.9999;
  //金额整数部分
  let integerNum;
  //金额小数部分
  let decimalNum;
  //输出的中文金额字符串
  let chineseStr = ‘‘;
  //分离金额后用的数组,预定义
  let 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) {
    let zeroCount = 0;
    let IntLen = integerNum.length;
    for (let i = 0; i < IntLen; i++) {
      let n = integerNum.substr(i, 1);
      let p = IntLen - i - 1;
      let q = p / 4;
      let 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 != ‘‘) {
    let decLen = decimalNum.length;
    for (let i = 0; i < decLen; i++) {
      let 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;
};

export default intToChinese;
时间: 2024-09-29 00:08:41

js金额转大写数字的相关文章

js金额转换大写

从tenpay找到的一段将金额小写转换成大写的js代码: 1 var DX = function (num) { 2 var strOutput = ""; 3 var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分'; 4 num += "00"; 5 var intPos = num.indexOf('.'); 6 if (intPos >= 0) 7 num = num.substring(0, intPos) + num.substr(intPos

js金额转换大写(转)

var DX = function (num) { var strOutput = ""; var strUnit = '仟佰拾亿仟佰拾万仟佰拾元角分'; num += "00"; var intPos = num.indexOf('.'); if (intPos >= 0) num = num.substring(0, intPos) + num.substr(intPos + 1, 2); strUnit = strUnit.substr(strUnit.

js金额转大写(万元为单位)

function NoToChinese(num) { var AA = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); var BB = new Array("", "拾", "佰&q

JS判断是否为数字,中文,小写、大写字母

/**  取得字符串的字节长度**/ 代码function strlen(str)   {      var i;      var len;            len = 0;      for (i=0;i<str.length;i++)      {          if (str.charCodeAt(i)>255) len+=2; else len++;      }      return len;   } /* * 判断是否为数字,是则返回true,否则返回false */

BPM实例分享——金额规则大写

金额规则大写 在涉及金额的流程中经常会遇到需要大写金额数据与小写金额匹配,如何实现输入数字后自动转换呢? 初级用法: 1.在默认表单基本属性javascript 中增加如下金额转换方法 /** 数字金额大写转换(可以处理整数,小数,负数) */ function chineseNumber(dValue) { var maxDec = 2; // 验证输入金额数值或数值字符串: dValue = dValue.toString().replace(/,/g, ""); dValue =

将一个数转化为中文金额的大写方式(有详细的解题步骤)

1 /* 2 * 程序目的: 从命令行输入一个数,并将其转化为中文金额的大写方式 3 * 思路: 4 * 所需对象:用到两个数组,一个存中文大写的数字,一个存金额单位: 5 * 为了保持精度的相对准确,用到BigDecimal类:(不懂的朋友,上网一查就知道了): 6 * 我这里用了StringBuilder类来存转化后的结果:(其实用String,StringBuffer都可以) 7 * 过程:输入一个double类型的数———>转化为BigDecimal类的对象———>四舍五入后转化为lo

Oracle 小写金额转换为大写

在开发EBS的合同报表打印的时候需要将小写金额转换为大写. 如下是本人自己写的转换函数. 主要思路:先获取小数点位置,在区分整数与小数点处理,根据位数和数字组合读取金额. 最后再处理特殊显示部分. /******************************************************************* *  FUNCTION get_big_amount 数字金额转换为大写 *  p_amount 输入数据金额 *  返回大写金额,位数 :千亿----厘 ****

JS控制只能输入数字并且最多允许小数点两位

直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" name="je" onblur="clearNoNum(this)

JS正则表达式验证各种数字类型

以下内容 Js代码 <script type="text/javascript"> function validate(){ var reg = new RegExp("^[0-9]*$"); var obj = document.getElementById("name"); if(!reg.test(obj.value)){ alert("请输入数字!"); } if(!/^[0-9]*$/.test(obj.