想要实现"js实现的格式化数字和金额功能",我们需要掌握以下知识点:
下面是具体的实现步骤和示例说明:
千分位分隔符指的是将数字的每三位从右往左依次插入一个逗号(,),比如将1000000格式化为1,000,000。
可以借助正则表达式和JS内置的字符串方法将数字进行格式化。
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格式。
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格式化数字和金额的功能。
本文链接:http://task.lmcjl.com/news/15807.html