想要实现"js实现的格式化数字和金额功能",我们需要掌握以下知识点:
- 如何为数字添加千分位分隔符
- 如何为金额数字统一格式化成xxx,xxx.xx样式
下面是具体的实现步骤和示例说明:
一、为数字添加千分位分隔符
1.1 千分位分隔符的基本原理
千分位分隔符指的是将数字的每三位从右往左依次插入一个逗号(,),比如将1000000格式化为1,000,000。
可以借助正则表达式和JS内置的字符串方法将数字进行格式化。
1.2 实现代码示例
function formatNumber(num) {
// 将数字转换为字符串,并取整
var integer = parseInt(num).toString();
// 截取小数部分
var decimal = num.toString().split('.')[1] || '';
// 中间用逗号分隔
var reg = /(\d{1,3})(?=(\d{3})+(?:\.))/g;
integer = integer.replace(reg, '$1,');
// 拼接回小数部分
return decimal ? integer + '.' + decimal : integer;
}
// 示例
console.log(formatNumber(123456789)); // "123,456,789"
console.log(formatNumber(123456789.1)); // "123,456,789.1"
console.log(formatNumber(123456789.12345)); // "123,456,789.12345"
二、金额数字统一格式化成xxx,xxx.xx样式
2.1 金额数字格式化的基本原理
当涉及到金额数字的格式化,需要统一规定数字的格式,比如小数位数、千分位分隔符等。通常使用的标准是xxx,xxx.xx格式。
2.2 实现代码示例
function formatMoney(num, decimal = 2) {
decimal = decimal >= 0 && decimal <= 20 ? decimal : 2;
num = parseFloat((num + '').replace(/[^\d.-]/g, '')).toFixed(decimal) + '';
var integer = num.split('.')[0].replace(/(\d)(?=(\d{3})+$)/g, '$1,');
var decimal = num.split('.')[1];
return integer + '.' + (decimal ? decimal : '00');
}
// 示例
console.log(formatMoney(123456789.12345)); // "123,456,789.12"
console.log(formatMoney(123456789)); // "123,456,789.00"
console.log(formatMoney(-123456789.987654321, 3)); // "-123,456,789.988"
这样,我们就实现了JS格式化数字和金额的功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现的格式化数字和金额功能简单示例 - Python技术站