📅  最后修改于: 2023-12-03 15:31:44.615000             🧑  作者: Mango
在数字格式化时,JavasScript 提供了多种选项来将数字格式为货币。下面介绍几种格式化货币的方法。
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 style
和 currency
对象,定义了货币的样式和货币类型。
我们可以使用 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
对象,它们定义了货币符号和样式等。
我们也可以通过编写自己的函数来格式化数字为货币格式。下面是一个简单的示例:
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 中,您可以通过以下方式格式化数字为货币:
根据您项目的需要,可以选择使用任意一种方法进行格式化。