前言

这是我的私人代码收集库,当前这篇是 JavaScript 的。

格式化类

1
/* 格式化金额数字
2
* number {Number} 待格式化的数字
3
* fix    {Number} 需要保留的小数点位数
4
* unit   {String} 单位
5
* txt    {String} 数字为0时显示的文字
6
* symbol {String} 分割符号
7
* return {String} 格式化好的字符串
8
*/
9
fmtMoney: function (number, fix, unit, txt, symbol) {
10
    // 处理默认值
11
    fix = fix || 2;
12
    unit = unit || '';
13
    txt = txt || '--';
14
    symbol = symbol || ',';
15
16
    var floatNum = parseFloat(number);
17
    // 处理不合法输入
18
    if (floatNum === NaN) {
19
        console.error('fmtMoney: 待格式化数据(' + number + ')不是数字');
20
        return;
21
    }
22
    // 处理数字为0时输出
23
    if (floatNum === 0) return txt || '';
24
    // 分割数字
25
    var strNum = String(number);
26
    var numParts = strNum.split('.');
27
    var intPart = numParts[0];
28
    var decPart = numParts[1] || '';
29
    // 处理整数位
30
    intPart = intPart.replace(/(\d)(?=(\d{3})+$)/g, '$1' + symbol);
31
    // 处理小数位
32
    if (decPart.length < fix) {
33
        var zeros = new Array(fix - decPart.length + 1).join('0');
34
        decPart = decPart + zeros;
35
    } else {
36
        decPart = decPart.substr(0, fix);
37
    }
38
    return intPart + '.' + decPart + unit;
39
}