前言

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

格式化类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* 格式化金额数字
* number {Number} 待格式化的数字
* fix {Number} 需要保留的小数点位数
* unit {String} 单位
* txt {String} 数字为0时显示的文字
* symbol {String} 分割符号
* return {String} 格式化好的字符串
*/
fmtMoney: function (number, fix, unit, txt, symbol) {
// 处理默认值
fix = fix || 2;
unit = unit || '';
txt = txt || '--';
symbol = symbol || ',';

var floatNum = parseFloat(number);
// 处理不合法输入
if (floatNum === NaN) {
console.error('fmtMoney: 待格式化数据(' + number + ')不是数字');
return;
}
// 处理数字为0时输出
if (floatNum === 0) return txt || '';
// 分割数字
var strNum = String(number);
var numParts = strNum.split('.');
var intPart = numParts[0];
var decPart = numParts[1] || '';
// 处理整数位
intPart = intPart.replace(/(\d)(?=(\d{3})+$)/g, '$1' + symbol);
// 处理小数位
if (decPart.length < fix) {
var zeros = new Array(fix - decPart.length + 1).join('0');
decPart = decPart + zeros;
} else {
decPart = decPart.substr(0, fix);
}
return intPart + '.' + decPart + unit;
}