货币倾斜的JS Intl.NumberFormat具有maximumFractionDigits 0

时间:2017-05-12 14:42:58

标签: javascript google-chrome

我正在使用JavaScript Intl对象,我想格式化一个数字(例如150)看起来像“£150”。对于Chrome,直到版本59的更新,这段代码完美无缺:

var GBPFormatter = new Intl.NumberFormat('en-US', {
      style: 'currency',
      currency: 'GBP',
      maximumFractionDigits: 0
  });

但是现在它说“maximumFractionDigits”不能为0,并且在https://developer.mozilla.org/中读取后我发现对于GBP maximumFractionDigits不能小于2.

一切都很好,但我仍然需要“150英镑”而不是“150英镑”。任何想法我仍然可以使用Intl对象,使它看起来像我需要的方式。

P.S。我知道我可以使自己的功能相同,但考虑到我不只有英镑而是更多的货币,我更愿意坚持使用现成的解决方案。

1 个答案:

答案 0 :(得分:3)

您可以将maximumFractionDigits选项设置为0,但值必须高于minimumFractionDigits。由于此货币的minimumFractionDigits默认值高于0,因此您需要手动设置这两种货币以获得所需内容:

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

console.log(GBPFormatter.format(150)); // Should output "£150"