js将金额转为大写汉字

在vue中定义方法

// 定义转换函数
transform(tranvalue){
    try{
        var i=1;
        var dw2 = new Array("","万","亿");//大单位
        var dw1 = new Array("拾","佰","仟");//小单位
        var dw = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");//整数部分用
        //以下是小写转换成大写显示在合计大写的文本框中     
        //分离整数与小数
        var source = this.splits(tranvalue);
        var num = source[0];
        var dig = source[1];

        //转换整数部分
        var k1=0;//计小单位
        var k2=0;//计大单位
        var sum = 0;
        var str="";
        var len = source[0].length;//整数的长度
        for(i=1;i<=len;i++){
            var n = source[0].charAt(len-i);//取得某个位数上的数字
            var bn = 0;
            if(len-i-1>=0){
                bn = source[0].charAt(len-i-1);//取得某个位数前一位上的数字
            }
            sum = sum+Number(n);
            if(sum!=0){
                str = dw[Number(n)].concat(str);//取得该数字对应的大写数字,并插入到str字符串的前面
                if(n=='0')sum = 0;
            }
            if(len-i-1>=0){//在数字范围内
                if(k1!=3){//加小单位
                    if(bn!=0){
                        str = dw1[k1].concat(str);
                    }
                    k1++;
                }else{//不加小单位,加大单位
                    k1=0;
                    var temp = str.charAt(0);
                    if(temp=="万" || temp=="亿")//若大单位前没有数字则舍去大单位
                        str = str.substr( 1, str.length-1);
                    str = dw2[k2].concat(str);
                    sum = 0;
                }
            }
            if(k1==3)//小单位到千则大单位进一
            { k2++;}
        }

        //转换小数部分
        var strdig="";
        if(dig!=""){
            var n = dig.charAt(0);
            if(n!=0){
                strdig += dw[Number(n)]+"角";//加数字
            }
            var n = dig.charAt(1);
            if(n!=0){
                strdig += dw[Number(n)]+"分";//加数字
            }
        }
        str += "元"+strdig;
    }catch(e){
        return "0元";
    }
    return str;
},

//拆分整数与小数
splits(tranvalue){
    var value = new Array('','');
    temp = tranvalue.split(".");
    for(var i=0;i<temp.length;i++){
        value[i] = temp[i];
    }
    return value;
},

在vue中使用:

console.log(this.transform('1234'))
//打印:壹仟贰佰叁拾肆元
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
js asp中,可以通过以下代码将金额数字换为大写: ```javascript function convertToChineseNumeral(num) { // 大写数字 var upperNum = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]; // 金额单位 var unit = ["", "拾", "佰", "仟", "万", "亿", "兆"]; // 小数点后的单位 var decimalUnit = ["角", "分", "厘", "毫", "丝"]; // 将数字换为字符串 var numStr = num.toString(); var result = ""; // 处理整数部分 for (var i = 0; i < numStr.length; i++) { var digit = parseInt(numStr.charAt(i)); var unitPos = numStr.length - 1 - i; var unitIndex = unitPos % 4; var decimalIndex = unitPos % 4 - 2; if (digit !== 0) { // 当前数字不为零时,加上大写数字和单位 result += upperNum[digit] + unit[unitIndex]; } else { if (unitIndex === 0 && i < numStr.length - 1 && parseInt(numStr.charAt(i + 1)) !== 0) { // 当前数字为零,且下一位数字不为零时,加上“零” result += upperNum[digit]; } } } // 处理小数部分 var decimalNum = num - Math.floor(num); if (decimalNum > 0) { result += "点"; for (var j = 0; j < 2 && decimalNum > 0; j++) { decimalNum *= 10; var decimalDigit = Math.floor(decimalNum); result += upperNum[decimalDigit] + decimalUnit[j]; decimalNum -= decimalDigit; } } return result; } // 测试 var num = 12345.67; var chineseNumeral = convertToChineseNumeral(num); console.log(chineseNumeral); // 壹万贰仟叁佰肆拾伍元陆角柒分 ``` 通过以上代码,可以将金额数字12345.67换为大写的“壹万贰仟叁佰肆拾伍元陆角柒分”。这样的代码可以在js asp中用于将金额数字换为大写

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值