如何使用Intl.NumberFormat设置货币格式?

时间:2019-03-20 17:42:52

标签: javascript

我正在尝试将货币设置为以下格式

const formatter = new Intl.NumberFormat("en-GB", {
    style: "currency",
    currency: "GBP",
    minimumFractionDigits: 2
  });

const moneyFormat = formatter.format(7360);

预期£73.60,但它返回£7,360.00

知道我在做什么错吗?

3 个答案:

答案 0 :(得分:1)

如果金额为pence,而所需结果为英镑,则必须将金额除以100(考虑100便士= 1英镑)。 minimumFractionDigits调整当前小数点后的尾随零,但不操纵实际值。

您应该在下面尝试

const formatter = new Intl.NumberFormat("en-GB", {
  style: "currency",
  currency: "GBP",
  minimumFractionDigits: 2,
});

const moneyFormat = formatter.format(7360 / 100);

console.log(moneyFormat)

答案 1 :(得分:0)

format函数采用原始值,并将其格式化为您指定的小数位数。您给它的原始数字是7360,因此它要加上两个小数位使其成为7360.00。需要传递的数字实际上是73.60

如果您将货币值作为整数使用,则可以简单地将其除以100以显示期望的值。

const moneyFormat = formatter.format(7360 / 100);

答案 2 :(得分:0)

  

此代码可以帮助您获得不带小数的格式。

const formatter = new Intl.NumberFormat("en-GB", {
    currency: "GBP"
  });

const moneyFormat = formatter.format(7360);

console.log("$",moneyFormat);