关键词

js实现的格式化数字和金额功能简单示例

想要实现"js实现的格式化数字和金额功能",我们需要掌握以下知识点:

  1. 如何为数字添加千分位分隔符
  2. 如何为金额数字统一格式化成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格式化数字和金额的功能。

本文链接:http://task.lmcjl.com/news/15807.html

展开阅读全文