📜  javascript 格式数字作为货币 - Javascript (1)

📅  最后修改于: 2023-12-03 15:31:44.615000             🧑  作者: Mango

Javascript 格式数字作为货币

在数字格式化时,JavasScript 提供了多种选项来将数字格式为货币。下面介绍几种格式化货币的方法。

1. 使用 toLocaleString 方法

toLocaleString 是 JavaScript 原生方法,在数字上调用该方法会将数字格式化为特定语言环境的字符串(包括货币)。该方法接受一个 BCP 47 语言标记参数,该参数指定要使用哪种语言环境。

以下是 toLocaleString 的语法和示例:

const number = 56789876.345;
console.log(number.toLocaleString('en-US', {style: 'currency',currency: 'USD'})); // $56,789,876.35
console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' })); // ¥56,789,876

在示例中,第一个参数 'en-US' 和 'ja-JP' 分别是美式英语和日文中使用的语言环境标记。接着,we passed a stylecurrency 对象,定义了货币的样式和货币类型。

2. 使用 Intl.NumberFormat

我们可以使用 Intl.NumberFormat() 方法来格式化数字为货币。这是一个更强大和灵活的方法,它支持货币符号和具体的货币格式。

const number = 56789876.345;
const currencyFormatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
});

console.log(currencyFormatter.format(number)); // $56,789,876.35

上例中,我们使用 new Intl.NumberFormat() 方法创建了一个格式化对象并传递了两个参数:语言环境标记和 style 对象,它们定义了货币符号和样式等。

3. 自定义格式化函数

我们也可以通过编写自己的函数来格式化数字为货币格式。下面是一个简单的示例:

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

console.log(formatCurrency(56789876.345, '$')); // $56,789,876.35

在上面这个自定义函数中,我们使用 toFixed() 方法将数字保留两位小数,并将它替换成逗号分隔的数字串,最后加上前缀符号。

这个方法会适用于要避免使用某些语言环境的项目,因为它是通用的。

结论

在 JavaScript 中,您可以通过以下方式格式化数字为货币:

  • 使用 toLocaleString 方法
  • 使用 Intl.NumberFormat 构造函数
  • 使用自定义函数进行格式化

根据您项目的需要,可以选择使用任意一种方法进行格式化。