📜  如何将货币格式化为货币字符串 - Javascript (1)

📅  最后修改于: 2023-12-03 14:53:05.074000             🧑  作者: Mango

如何将货币格式化为货币字符串 - Javascript

在JavaScript中,有很多方法可以将货币格式化为货币字符串,这些方法可以用于将浮点数、整数或字符串格式化为货币字符串。下面我们会介绍三种方法。

方法一:使用toLocaleString()方法

JavaScript内置toLocaleString()方法,可以将任何数字格式化为本地格式的字符串。可以传递参数来指定货币代码、小数位数、语言等。可以使用以下代码将数字格式化为货币字符串:

const number = 1000;
const currencyString = number.toLocaleString('en-US', {style: 'currency', currency: 'USD'});
console.log(currencyString); // "$1,000.00"

可以将toLocaleString()方法直接应用于一个数字变量或直接应用于一个数字常量。

方法二:使用Intl.NumberFormat()方法

JavaScript也提供了Intl.NumberFormat()方法,它是一个更强大、更灵活的格式化数字的方法。可以传递参数来指定货币代码、小数位数、语言等。可以使用以下代码将数字格式化为货币字符串:

const number = 1000;
const formatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
  minimumFractionDigits: 2
});
const currencyString = formatter.format(number);
console.log(currencyString); // "$1,000.00"

可以在格式化器上指定各种选项,包括货币代码、小数位数、舍入策略、语言、分组范围等。这使Intl.NumberFormat()方法成为一个非常灵活的货币字符串格式化方法。

方法三:手写函数

如果需要更多的控制权和灵活性,可以手写一个货币字符串格式化函数。以下是一个简单的货币字符串格式化函数:

function formatCurrency(currency, decimal = 2) {
  return currency.toFixed(decimal).replace(/\d(?=(\d{3})+\.)/g, '$&,');
}

const number = 1000;
const currencyString = formatCurrency(number);
console.log(currencyString); // "1,000.00"

以上函数使用toFixed()方法将数值转换为定长小数点格式字符串(小数位数默认为2),使用正则表达式将数字分组标点符号插入字符串中。

总体而言,toLocaleString()Intl.NumberFormat()方法是将货币格式化为货币字符串的最佳方法,而手写函数可以为大量自定义提供更多的控制权。