JavaScript将数字转换为大写金额函数

例子1

目中用到的,用JavaScript将数字转换为大写金额,分享出来给大家

var digitUppercase = function(n) {
    var fraction = ['角', '分'];
    var digit = [
        '零', '壹', '贰', '叁', '肆',
        '伍', '陆', '柒', '捌', '玖'
    ];
    var unit = [
        ['元', '万', '亿'],
        ['', '拾', '佰', '仟']
    ];
    var head = n < 0 ? '欠' : '';
    n = Math.abs(n);
    var s = '';
    for (var i = 0; i < fraction.length; i++) {
        s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');
    }
    s = s || '整';
    n = Math.floor(n);
    for (var i = 0; i < unit[0].length && n > 0; i++) {
        var p = '';
        for (var j = 0; j < unit[1].length && n > 0; j++) {
            p = digit[n % 10] + unit[1][j] + p;
            n = Math.floor(n / 10);
        }
        s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
    }
    return head + s.replace(/(零.)*零元/, '元')
        .replace(/(零.)+/g, '零')
        .replace(/^整$/, '零元整');
};

console.log(digitUppercase(7682.01)); //柒仟陆佰捌拾贰元壹分
console.log(digitUppercase(7682));  //柒仟陆佰捌拾贰元整
console.log(digitUppercase(951434677682.00)); //玖仟伍佰壹拾肆亿叁仟肆佰陆拾柒万柒仟陆佰捌拾贰元整

例子2

// 将输入的数字金额转换成对应的中文大写金额
// idNumber输入的数字金额,idCHN输出的中文大写金额
function TransformNumberIntoCHN(idNumber, idCHN) {
    var number = document.getElementById(idNumber).value;
    if (!/^(0|[1-9]\d*)(\.\d{1,2})?$/.test(number)) {
        document.getElementById(idCHN).value = "";
        document.getElementById(idNumber).value = "";
        return false;
    }
    var unit = "仟佰拾亿仟佰拾万仟佰拾元角分", str = "";
    number += "00";
    var point = number.indexOf('.');
    if (point >= 0) {
        number = number.substring(0, point) + number.substr(point + 1, 2);
    }
    unit = unit.substr(unit.length - number.length);
    for (var i = 0; i < number.length; i++) {
        str += '零壹贰叁肆伍陆柒捌玖'.charAt(number.charAt(i)) + unit.charAt(i);
    }
    //document.getElementById(idCHN).value = str.replace(/零(仟|佰|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|壹(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");
    document.getElementById(idCHN).value = str.replace(/零(仟|佰|拾|角)/g, "零").replace(/(零)+/g, "零").replace(/零(万|亿|元)/g, "$1").replace(/(亿)万|(拾)/g, "$1$2").replace(/^元零?|零分/g, "").replace(/元$/g, "元整");

时间: 2024-10-26 00:43:17

JavaScript将数字转换为大写金额函数的相关文章

用JavaScript将数字转换为大写金额

 项目中用到的,用JavaScript将数字转换为大写金额,分享出来给大家 var digitUppercase = function(n) {     var fraction = ['角', '分'];     var digit = [         '零', '壹', '贰', '叁', '肆',         '伍', '陆', '柒', '捌', '玖'     ];     var unit = [         ['元', '万', '亿'],         ['', '

JS 数字转换为大写金额的简单实例_javascript技巧

JS 数字转换为大写金额的简单实例 function DX(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "数据非法"; var unit = "千百拾亿千百拾万千百拾元角分", str = ""; n += "00"; var p = n.indexOf('.'); if (p >= 0) n = n.substring(0, p) + n.substr(p+1,

javascript实现数字转大写金额的函数

<SCRIPT type="text/javascript" Charset="GB2312"> function convertCurrency(currencyDigits) { // Constants: var MAXIMUM_NUMBER = 99999999999.99; // Predefine the radix characters and currency symbols for output: var CN_ZERO = "

javascript中将Object转换为String函数代码 (json str)_javascript技巧

复制代码 代码如下: function obj2str(o){ var r = []; if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+&quo

ssrs-SSRS 如何把数字的金额转换为大写金额....

问题描述 SSRS 如何把数字的金额转换为大写金额.... SSRS 如何把数字的金额转换为大写金额,请各位高手帮帮忙............. 解决方案 将数字转换为大写金额数字金额的大写转换数字金额转换大写

JavaScript中把数字转换为字符串的程序代码_基础知识

1:把数字转换为字符串的方法 复制代码 代码如下:      var string_value = String(number);     string_value = number.toString();       var n = 17;      binary_string = n.toString(2);                //Evaluates to "10001"      octal_string = "0" + n.toString(8)

关于数字转换大写金额

问题描述 现在实现了转换:如金额:伍仟零佰捌拾零万伍仟零佰陆拾零元零角贰分¥:50805060.02.现在想把部分零后面的单位省去像伍仟零佰捌拾里的佰,而像零元这种就不用省去单位.想请教下该怎么实现.protectedstringConvertSum(stringstr){if(!IsPositveDecimal(str))return"输入的不是正数字!";if(Double.Parse(str)>999999999999.99)return"数字太大,无法换算,请输

js数字转换为float,取N位小数

 在javascript中不分单精度float和双精度double,凡事有小数的变量都认为是float,因此要取小数后的n位,要用方法toFixed(n)来得到 js数字转换为float,取N个小数:   =========================================   javascript中的变量都是弱类型,所有的变量都声明为var,在类型转换过程中就没有java那么方便,它是通过 parseInt(变量).parseFloat(变量)等方法来进行类型转换的.注意:没有p

JavaScript中数字与字符串相互转化

一.数字转换成字符串 ①Number类定义的toString()方法:这个方法可以接收表示转换基数(radix,范围在2~36之间)的可选参数,如果不指定此参数,转换规则将是基于十进制.例如: ②Number类定义的toFixed()方法:这个方法可以指定小数点后的位数.例如: ③Number类定义的toExponential()方法:这个方法使用指数记数法将数字转换为指数形式的字符串,其中小数点前只有一位,小数点后的位数则由参数指定.例如: ④Number类定义的toPrecision()方法