📅  最后修改于: 2023-12-03 14:53:05.074000             🧑  作者: Mango
在JavaScript中,有很多方法可以将货币格式化为货币字符串,这些方法可以用于将浮点数、整数或字符串格式化为货币字符串。下面我们会介绍三种方法。
JavaScript内置toLocaleString()
方法,可以将任何数字格式化为本地格式的字符串。可以传递参数来指定货币代码、小数位数、语言等。可以使用以下代码将数字格式化为货币字符串:
const number = 1000;
const currencyString = number.toLocaleString('en-US', {style: 'currency', currency: 'USD'});
console.log(currencyString); // "$1,000.00"
可以将toLocaleString()
方法直接应用于一个数字变量或直接应用于一个数字常量。
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()
方法是将货币格式化为货币字符串的最佳方法,而手写函数可以为大量自定义提供更多的控制权。