目的地-Destination 前程似锦、未来可期、寻得良人、共赴白头,祝你也祝我。
博主 目的地-Destination
沪ICP备16003146号-2沪公网安备 31010702004922号萌ICP备20238488号博主 40分钟前 在线自豪地使用 Typecho 建站搭配使用 🌻Sunny 主题当前在线 1 人
歌曲封面 未知作品

沪ICP备16003146号-2

沪公网安备 31010702004922号

萌ICP备20238488号

网站已运行 7 年 329 天 13 小时 56 分

Powered by Typecho & Sunny

2 online · 50 ms

Title

Js/JQuery将金额数字转换为中文万、亿结尾

Chrison

·

·

108次阅读
烂笔头
Article
⚠️ 本文最后更新于2022年12月12日,已经过了667天没有更新,若内容或图片失效,请留言反馈

JavaScript代码

♾️ text 代码:
function addChineseUnit (number, decimalDigit) {

    var temp1 = number.toString();
    var temp2 = '';
    if(temp1.substring(0, 1) === "-"){
        number =  Number(number.toString().substring(1));
        temp2 = '-';
    }
    decimalDigit = decimalDigit == null ? 2 : decimalDigit;

    var integer = Math.floor(number);
    var digit = getDigit(integer);
    // ['个', '十', '百', '千', '万', '十万', '百万', '千万'];
    var unit = [];
    if (digit > 3) {
        var multiple = Math.floor(digit / 8);
        if (multiple >= 1) {
            var tmp = Math.round(integer / Math.pow(10, 8 * multiple));
            unit.push(addWan(tmp, number, 8 * multiple, decimalDigit));
            for (var i = 0; i < multiple; i++) {
                unit.push('亿');
            }
            return temp2 + unit.join('');
        } else {
            return temp2 + addWan(integer, number, 0, decimalDigit);
        }
    } else {
        return temp2 + number;
    }
}

function getDigit (integer) {
    var digit = -1;
    while (integer >= 1) {
        digit++;
        integer = integer / 10;
    }
    return digit;
}

为数字加上单位:万或亿

♾️ text 代码:
/**
 * 为数字加上单位:万或亿
 *
 * 例如:
 * 1000.01 => 1000.01
 * 10000 => 1万
 * 99000 => 9.9万
 * 566000 => 56.6万
 * 5660000 => 566万
 * 44440000 => 4444万
 * 11111000 => 1111.1万
 * 444400000 => 4.44亿
 * 40000000,00000000,00000000 => 4000万亿亿
 * 4,00000000,00000000,00000000 => 4亿亿亿
 *
 * @param {number} number 输入数字.
 * @param {number} decimalDigit 小数点后最多位数,默认为2
 * @return {string} 加上单位后的数字
 */

function addWan (integer, number, mutiple, decimalDigit) {
    var digit = getDigit(integer);
    if (digit > 3) {
        var remainder = digit % 8;
        if (remainder >= 5) { // ‘十万’、‘百万’、‘千万’显示为‘万’
            remainder = 4;
        }
        return Math.round(number / Math.pow(10, remainder + mutiple - decimalDigit)) / Math.pow(10, decimalDigit) + '万';
    } else {
        return Math.round(number / Math.pow(10, mutiple - decimalDigit)) / Math.pow(10, decimalDigit);
    }
}

显示结果

♾️ text 代码:
123536.8546 保留2位 ---> 12.35万
-12315615161536.85146 保留4位 ---> -12.3156万亿
1236.8546 保留2位 ---> 1236.8546

完整Demo

♾️ text 代码:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Untitled Document</title>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
/**
 * 为数字加上单位:万或亿
 *
 * 例如:
 * 1000.01 => 1000.01
 * 10000 => 1万
 * 99000 => 9.9万
 * 566000 => 56.6万
 * 5660000 => 566万
 * 44440000 => 4444万
 * 11111000 => 1111.1万
 * 444400000 => 4.44亿
 * 40000000,00000000,00000000 => 4000万亿亿
 * 4,00000000,00000000,00000000 => 4亿亿亿
 *
 * @param {number} number 输入数字.
 * @param {number} decimalDigit 小数点后最多位数,默认为2
 * @return {string} 加上单位后的数字
 */

function addWan (integer, number, mutiple, decimalDigit) {
    var digit = getDigit(integer);
    if (digit > 3) {
        var remainder = digit % 8;
        if (remainder >= 5) { // ‘十万’、‘百万’、‘千万’显示为‘万’
            remainder = 4;
        }
        return Math.round(number / Math.pow(10, remainder + mutiple - decimalDigit)) / Math.pow(10, decimalDigit) + '万';
    } else {
        return Math.round(number / Math.pow(10, mutiple - decimalDigit)) / Math.pow(10, decimalDigit);
    }
}

function getDigit (integer) {
    var digit = -1;
    while (integer >= 1) {
        digit++;
        integer = integer / 10;
    }
    return digit;
}

function addChineseUnit (number, decimalDigit) {

    var temp1 = number.toString();
    var temp2 = '';
    if(temp1.substring(0, 1) === "-"){
        number =  Number(number.toString().substring(1));
        temp2 = '-';
    }
    decimalDigit = decimalDigit == null ? 2 : decimalDigit;

    var integer = Math.floor(number);
    var digit = getDigit(integer);
    // ['个', '十', '百', '千', '万', '十万', '百万', '千万'];
    var unit = [];
    if (digit > 3) {
        var multiple = Math.floor(digit / 8);
        if (multiple >= 1) {
            var tmp = Math.round(integer / Math.pow(10, 8 * multiple));
            unit.push(addWan(tmp, number, 8 * multiple, decimalDigit));
            for (var i = 0; i < multiple; i++) {
                unit.push('亿');
            }
            return temp2 + unit.join('');
        } else {
            return temp2 + addWan(integer, number, 0, decimalDigit);
        }
    } else {
        return temp2 + number;
    }
}

$(function(){ 
    $("#div1").text('123536.8546 保留2位 ---> '+addChineseUnit (123536.8546,2));
    $("#div2").text('-12315615161536.85146 保留4位 ---> '+addChineseUnit(-12315615161536.85146,4));
    $("#div3").text('1236.8546 保留2位 ---> '+addChineseUnit (1236.8546,2));
});

    
</script>
</head>

<body>
    <div id="div1"></div>
    <div id="div2"></div>
    <div id="div3"></div>
</body>
</html>

现在已有 0 条评论,0 人点赞
Comment:共0条
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主 不再显示
博主