如何在javascript中把数字转换为货币字符串?

517 阅读1分钟

在Javascript应用程序中,你可以将数据存储为数字,并以货币字符串显示数据。

例如,在商业网络应用中,每个产品都有价格显示。假设应用程序向美国用户显示美元,向印度用户显示卢比。

每种语言都提供了内部化的API来显示本地化格式的数据。

javascript提供了默认的本地化和内部化API来转换本地化的字符串格式。

将数字转换成货币字符串的Intl.NumberFormat

首先创建一个NumberFormat类,用于转换为特定语言的字符串。

var formatter = new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'USD',
  //minimumFractionDigits: 0,
  //maximumFractionDigits: 0, 
});

你需要提供以下属性

  • locale字符串,包含语言代码和国家代码,例如:en-US,ie en-IN,de-DE,ja-JP
  • 货币字符串,如果样式是货币,值是USD,EUR,JPY,如果样式单位值是升,公里/小时,则显示货币的符号。
  • 样式 :- 货币,单位

下面是一个完整的例子

const number = 100000;
console.log(new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(number)); //"$100,000.00"


console.log(new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(number));//"100.000,00 €"


console.log(new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(number));// "¥100,000"


console.log(new Intl.NumberFormat('en-IN', { }).format(number)); 
//"1,00,000"

console.log(new Intl.NumberFormat('ar-EG').format(number));
// "100,000"

使用toLocaleString将数字格式化为货币字符串

toLocaleString 将数字转换成本地化的货币字符串

下面是一个例子

const number = 1000000;

console.log(number.toLocaleString('en-US', { style: 'currency', currency: 'USD' })); //$1,000,000.00

console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));//1.000.000,00 €

console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' })); // ¥1,000,000

console.log(number.toLocaleString('en-IN', { style: 'currency', currency: 'INR' })); //₹10,00,000.00