数字金额转化为汉字大写金额

来源:互联网 发布:从哪里查淘宝消费总额 编辑:程序博客网 时间:2024/05/18 09:09

代码:

function numberToChinese(number) {    /*本方法:数字金额转化为汉字大写金额; *支持最大整数兆(万亿); *支持小数后四位(毫); */    var Chinese = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];    var ChineseInteger = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿', '拾', '佰', '仟', '兆'];    var ChineseDecimal = ['角', '分', '厘', '毫'];    var resultInteger = '',    resultDecimal = '',    resultNegative = '';    number = isNaN(number) ? 0 : number; //校验数字格式    var numStr = number.toString(); //转化为字符串    //定义数组 获取整数部分========================    var arrInteger = numStr.split('.')[0];    if (!arrInteger || arrInteger == '0') {        resultInteger += '零元';    } else {        if (arrInteger.length > 13) {            arrInteger = arrInteger.substr( - 13);        }        //整数部分 数字转化对应汉字        var numInteger = arrInteger.split('');        var IntegerData = new Array();        for (var i in numInteger) {            for (var i2 in Chinese) {                if (numInteger[i] == i2) {                    IntegerData.push(Chinese[i2]);                }                if (numInteger[i] == '-') {                    resultNegative = '负';                }            }        }        IntegerData.reverse();        //整数部分 数组拼接        for (var i in IntegerData) {            for (var i2 in ChineseInteger) {                if (i == i2) {                    IntegerData[i] = IntegerData[i] + ChineseInteger[i];                }            }        }        IntegerData.reverse();        for (var i in IntegerData) {            resultInteger += IntegerData[i];        }        resultInteger += '元';    }    //定义数组 获取小数部分=========================    var arrDecimal = numStr.split('.')[1];    if (arrDecimal) {        if (arrDecimal.length > 4) {            arrDecimal = arrDecimal.substr(0, 4);        }        //小数部分 数字转化对应汉字        var numDecimal = arrDecimal.split('');        var DecimalData = new Array();        for (var i in numDecimal) {            for (var i2 in Chinese) {                if (numDecimal[i] == i2) {                    DecimalData.push(Chinese[i2]);                }            }        }        //小数部分 数组拼接        for (var i in DecimalData) {            for (var i2 in ChineseDecimal) {                if (i == i2) {                    DecimalData[i] = DecimalData[i] + ChineseDecimal[i];                }            }        }        for (var i in DecimalData) {            resultDecimal += DecimalData[i];        }    }    //整数部分+小数部分 拼接返回    return resultNegative + resultInteger + resultDecimal;}


示例:
var data = 12345;console.log(numberToChinese(data));//结果:壹万贰仟叁佰肆拾伍元var data = 12345.12345;console.log(numberToChinese(data));//结果:壹万贰仟叁佰肆拾伍元壹角贰分叁厘肆毫var data = 0;console.log(numberToChinese(data));//结果:零元var data = 0.234;console.log(numberToChinese(data));//结果:零元贰角叁分肆厘var data = -345.89;console.log(numberToChinese(data));//结果:负叁佰肆拾伍元捌角玖分var data = -10004.89;console.log(numberToChinese(data));//结果:负壹万零仟零佰零拾肆元捌角玖分var data = 50000;console.log(numberToChinese(data));//结果:伍万零仟零佰零拾零元var data = 50000.0004;console.log(numberToChinese(data));//结果:伍万零仟零佰零拾零元





0 0
原创粉丝点击