接下来我将为大家详细讲解“JS数字千分位格式化实现方法总结”的完整攻略。
JS数字千分位格式化实现方法总结
在开发过程中,经常会遇到需要对数字进行千分位格式化的要求。下面是两种实现方法的总结。
方法一:正则表达式实现
正则表达式是一种能够匹配字符串的强有力的工具,我们可以通过正则表达式实现数字千分位格式化。下面是示例代码:
/**
* 将数字格式化为千分位格式
* @param {Number} num 需要格式化的数字
* @param {Number} precision 小数点后保留的位数,默认值为2
* @return {String} 格式化后的字符串
*/
function formatNumber(num, precision = 2) {
// 判断num是否为数字
if (isNaN(num)) {
return "";
}
// 将num转换为字符串并获取整数部分
let [integerPart, decimalPart = ""] = num.toString().split(".");
// 对整数部分进行千分位格式化
integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
// 对小数部分保留指定位数,并判断是否需要补0
if (decimalPart && decimalPart.length > precision) {
decimalPart = decimalPart.slice(0, precision);
} else {
decimalPart = decimalPart.padEnd(precision, "0");
}
// 返回格式化后的字符串
return decimalPart ? `${integerPart}.${decimalPart}` : integerPart;
}
上述代码以一个名为formatNumber
的函数为基础实现数字千分位格式化。先将数字转换为字符串并获取整数部分和小数部分,对整数部分进行正则表达式匹配并加上逗号,对小数部分进行保留指定位数的处理,最终返回格式化后的字符串。
下面是函数调用示例:
console.log(formatNumber(1000.34567)); // "1,000.35"
console.log(formatNumber(1234567.890123)); // "1,234,567.89"
方法二:数值处理实现
该方法不需要正则表达式,直接利用JS提供的toLocaleString
函数实现数字千分位格式化。下面是示例代码:
/**
* 将数字格式化为千分位格式
* @param {Number} num 需要格式化的数字
* @param {Number} precision 小数点后保留的位数,默认值为2
* @return {String} 格式化后的字符串
*/
function formatNumber(num, precision = 2) {
// 判断num是否为数字
if (isNaN(num)) {
return "";
}
// 对num进行千分位格式化
return num.toLocaleString(undefined, { minimumFractionDigits: precision, maximumFractionDigits: precision });
}
上述代码以一个名为formatNumber
的函数为基础实现数字千分位格式化。直接利用JS提供的toLocaleString
函数实现数字千分位格式化,并指定小数点后需要保留的位数。
下面是函数调用示例:
console.log(formatNumber(1000.34567)); // "1,000.35"
console.log(formatNumber(1234567.890123)); // "1,234,567.89"
到此,我们就完成了“JS数字千分位格式化实现方法总结”的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS数字千分位格式化实现方法总结 - Python技术站